From efb6ef14f275fc797f65f7ceeccf805fd2e351b7 Mon Sep 17 00:00:00 2001 From: Russell Stoneback Date: Tue, 26 Apr 2022 13:53:45 -0500 Subject: [PATCH 1/5] ENH: New CDF library version --- cdf38_1-dist/CDFLeapSeconds.txt | 48 + cdf38_1-dist/CDF_copyright.txt | 17 + cdf38_1-dist/CHANGES.txt | 315 + cdf38_1-dist/HOWTO.run-Java-tools | 77 + cdf38_1-dist/HOWTO.run-cdf-json-tools | 43 + cdf38_1-dist/HOWTO.run-cdf-xml-tools | 78 + cdf38_1-dist/HOWTO.run_previous_version | 104 + cdf38_1-dist/Help.all | 487 ++ cdf38_1-dist/Help.install | 22 + cdf38_1-dist/Help.test | 5 + cdf38_1-dist/Makefile | 2511 ++++++++ cdf38_1-dist/Note.1st | 16 + cdf38_1-dist/Note.gcc | 6 + cdf38_1-dist/Note.intel | 5 + cdf38_1-dist/Note.linux | 22 + cdf38_1-dist/Note.macosx | 16 + cdf38_1-dist/Note.noCC | 5 + cdf38_1-dist/Note.solaris | 4 + cdf38_1-dist/README.after_install | 52 + cdf38_1-dist/README.install | 167 + cdf38_1-dist/README.install_java_APIs | 231 + cdf38_1-dist/README_cdf_tools.txt | 173 + cdf38_1-dist/Release.notes | 160 + cdf38_1-dist/Welcome.txt | 10 + cdf38_1-dist/cdfjava/JavaAPIs.txt | 2 + cdf38_1-dist/cdfjava/cdfjson/AAREADME.1ST | 12 + cdf38_1-dist/cdfjava/cdfjson/CDF2Json.java | 2075 +++++++ .../cdfjava/cdfjson/CDFJsonReader.java | 388 ++ cdf38_1-dist/cdfjava/cdfjson/Json2CDF.java | 1416 +++++ cdf38_1-dist/cdfjava/cdfjson/Readme.txt | 50 + cdf38_1-dist/cdfjava/cdfjson/ShowCDFJson.java | 66 + cdf38_1-dist/cdfjava/cdfjson/po.txt | 745 +++ cdf38_1-dist/cdfjava/cdfjson/wi.txt | 1847 ++++++ cdf38_1-dist/cdfjava/cdfml/AAREADME.1ST | 25 + cdf38_1-dist/cdfjava/cdfml/Readme.txt | 78 + cdf38_1-dist/cdfjava/cdfml/about.cdfVarData | 70 + cdf38_1-dist/cdfjava/cdfml/cdf.dtd | 148 + cdf38_1-dist/cdfjava/cdfml/cdf.xsd | 306 + cdf38_1-dist/cdfjava/cdfml/test.cdf | Bin 0 -> 116277 bytes cdf38_1-dist/cdfjava/cdfml/test.xml | 369 ++ cdf38_1-dist/cdfjava/cdfml/testdtd.xml | 374 ++ cdf38_1-dist/cdfjava/cdfml/testnew.cdf | Bin 0 -> 18231 bytes cdf38_1-dist/cdfjava/cdfml/testxsd.xml | 343 ++ .../cdfjava/cdftools/CDFToolsDriver.jar | Bin 0 -> 599299 bytes cdf38_1-dist/cdfjava/classes/cdfjava.jar | Bin 0 -> 113585 bytes cdf38_1-dist/cdfjava/classes/cdfjson.jar | Bin 0 -> 39982 bytes cdf38_1-dist/cdfjava/classes/cdfml.jar | Bin 0 -> 45441 bytes cdf38_1-dist/cdfjava/classes/gson-2.8.6.jar | Bin 0 -> 240255 bytes .../cdfjava/classes/javax.json-1.0.4.jar | Bin 0 -> 85147 bytes cdf38_1-dist/cdfjava/examples/CreateCDF.java | 897 +++ cdf38_1-dist/cdfjava/examples/ReadCDF.java | 679 +++ .../cdfjava/examples/ReadMetaCDF.java | 433 ++ cdf38_1-dist/cdfjava/examples/test-arm.cdf | Bin 0 -> 117066 bytes cdf38_1-dist/cdfjava/examples/test.cdf | Bin 0 -> 117066 bytes cdf38_1-dist/cdfjava/examples/test0.cdf | Bin 0 -> 116277 bytes cdf38_1-dist/cdfjava/examples/test1.cdf | Bin 0 -> 3568 bytes .../cdfjava/examples/testCdfColMajor.cdf | Bin 0 -> 1436 bytes .../cdfjava/examples/testCdfRowMajor.cdf | Bin 0 -> 1436 bytes cdf38_1-dist/cdfjava/examples/testjson.cdf | Bin 0 -> 37376 bytes cdf38_1-dist/cdfjava/examples/testo.cdf | Bin 0 -> 115665 bytes cdf38_1-dist/cdfjava/jni/Makefile | 93 + cdf38_1-dist/cdfjava/jni/cdfNativeLibrary.c | 3114 ++++++++++ cdf38_1-dist/cdfjava/jni/cdfNativeLibrary.h | 134 + cdf38_1-dist/cdfjava/jni/cdfjava.h | 112 + cdf38_1-dist/checkleapseconds.sh | 72 + cdf38_1-dist/modify_definition_files.sh | 80 + cdf38_1-dist/samples/OperateAttributes.c | 375 ++ cdf38_1-dist/samples/OperateCDF.c | 163 + cdf38_1-dist/samples/OperateVariables.c | 549 ++ cdf38_1-dist/samples/cacsst2.cdf | Bin 0 -> 73511 bytes cdf38_1-dist/samples/cacsst2.skt | 405 ++ cdf38_1-dist/samples/cdf.inc | 1612 +++++ cdf38_1-dist/samples/d103a2x.cdf | Bin 0 -> 10502 bytes cdf38_1-dist/samples/example.dat | 96 + cdf38_1-dist/samples/example1.c | 231 + cdf38_1-dist/samples/example1.cdf | Bin 0 -> 20616 bytes cdf38_1-dist/samples/example2.cdf | Bin 0 -> 8606 bytes cdf38_1-dist/samples/example2.f | 147 + cdf38_1-dist/samples/geocpi0.cdf | Bin 0 -> 30453 bytes cdf38_1-dist/samples/geocpi0.skt | 723 +++ cdf38_1-dist/samples/geocpi1.cdf | Bin 0 -> 44688 bytes cdf38_1-dist/samples/geocpi2.cdf | Bin 0 -> 44693 bytes cdf38_1-dist/samples/ij01r39.cdf | Bin 0 -> 29584 bytes cdf38_1-dist/samples/read_example1.c | 336 ++ cdf38_1-dist/samples/zfia10x.cdf | Bin 0 -> 21387 bytes cdf38_1-dist/src/definitions/definitions.B | 66 + cdf38_1-dist/src/definitions/definitions.C | 57 + cdf38_1-dist/src/definitions/definitions.K | 56 + cdf38_1-dist/src/help/cdf2skt.olh | 416 ++ cdf38_1-dist/src/help/cdf2sktj.olh | 135 + cdf38_1-dist/src/help/cdfbrow.ilh | 822 +++ cdf38_1-dist/src/help/cdfcmp.olh | 431 ++ cdf38_1-dist/src/help/cdfcmpj.olh | 130 + cdf38_1-dist/src/help/cdfcvt.olh | 797 +++ cdf38_1-dist/src/help/cdfcvtj.olh | 257 + cdf38_1-dist/src/help/cdfdirj.olh | 19 + cdf38_1-dist/src/help/cdfdump.olh | 277 + cdf38_1-dist/src/help/cdfdumpj.olh | 78 + cdf38_1-dist/src/help/cdfedit.ilh | 1825 ++++++ cdf38_1-dist/src/help/cdfedit.olh | 330 ++ cdf38_1-dist/src/help/cdfeditj.olh | 134 + cdf38_1-dist/src/help/cdfinq.olh | 103 + cdf38_1-dist/src/help/cdfinqj.olh | 44 + cdf38_1-dist/src/help/cdfirsdump.olh | 181 + cdf38_1-dist/src/help/cdfirsdumpj.olh | 65 + cdf38_1-dist/src/help/cdfleaptableinfo.olh | 80 + cdf38_1-dist/src/help/cdfleaptableinfoj.olh | 41 + cdf38_1-dist/src/help/cdfmerge.olh | 279 + cdf38_1-dist/src/help/cdfmergej.olh | 167 + cdf38_1-dist/src/help/cdfstats.olh | 375 ++ cdf38_1-dist/src/help/cdfstatsj.olh | 140 + cdf38_1-dist/src/help/cdfvalidate.olh | 123 + cdf38_1-dist/src/help/cdfvalidatej.olh | 46 + cdf38_1-dist/src/help/cdfxp.ilh | 2014 +++++++ cdf38_1-dist/src/help/skt2cdf.olh | 292 + cdf38_1-dist/src/help/skt2cdfj.olh | 119 + cdf38_1-dist/src/include/cdf.h | 2205 +++++++ cdf38_1-dist/src/include/cdf.inc | 1670 ++++++ cdf38_1-dist/src/include/cdf2skt.h | 144 + cdf38_1-dist/src/include/cdfcmp.h | 140 + cdf38_1-dist/src/include/cdfconfig.h | 718 +++ cdf38_1-dist/src/include/cdfcvt.h | 193 + cdf38_1-dist/src/include/cdfdf.inc | 1515 +++++ cdf38_1-dist/src/include/cdfdist.h | 1171 ++++ cdf38_1-dist/src/include/cdfdump.h | 107 + cdf38_1-dist/src/include/cdfdvf.inc | 853 +++ cdf38_1-dist/src/include/cdfdvf2.inc | 540 ++ cdf38_1-dist/src/include/cdfdvf3.inc | 512 ++ cdf38_1-dist/src/include/cdfedit.h | 396 ++ cdf38_1-dist/src/include/cdfinq.h | 64 + cdf38_1-dist/src/include/cdfirsdump.h | 91 + cdf38_1-dist/src/include/cdfleapsecondsinfo.h | 51 + cdf38_1-dist/src/include/cdflib.h | 2627 +++++++++ cdf38_1-dist/src/include/cdflib64.h | 928 +++ cdf38_1-dist/src/include/cdfmd5.h | 77 + cdf38_1-dist/src/include/cdfmerge.h | 77 + cdf38_1-dist/src/include/cdfmsf.inc | 386 ++ cdf38_1-dist/src/include/cdfrev.h | 49 + cdf38_1-dist/src/include/cdfstats.h | 184 + cdf38_1-dist/src/include/cdftools.h | 992 ++++ cdf38_1-dist/src/include/cdfvalidate.h | 61 + cdf38_1-dist/src/include/cdfxp.h | 1056 ++++ cdf38_1-dist/src/include/skt2cdf.h | 198 + cdf38_1-dist/src/include/widgets.h | 479 ++ cdf38_1-dist/src/include/windoz.h | 607 ++ cdf38_1-dist/src/tests/Makefile | 675 +++ cdf38_1-dist/src/tests/q2f4pc.f | 22 + cdf38_1-dist/src/tests/q2if4pc.f | 21 + cdf38_1-dist/src/tests/qst2Version.c | 71 + cdf38_1-dist/src/tests/qst2c.c | 1215 ++++ cdf38_1-dist/src/tests/qst2cOrig.c | 496 ++ cdf38_1-dist/src/tests/qst2cutf8.c | 163 + cdf38_1-dist/src/tests/qst2f.f | 737 +++ cdf38_1-dist/src/tests/qst2fOrig.f | 649 +++ cdf38_1-dist/src/tests/qst2fdf.f | 616 ++ cdf38_1-dist/src/tests/qst2futf8.f | 142 + cdf38_1-dist/src/tests/qst2ic.c | 1037 ++++ cdf38_1-dist/src/tests/qst2icEPOCH16.c | 365 ++ cdf38_1-dist/src/tests/qst2icTT2000.c | 312 + cdf38_1-dist/src/tests/qst2if.f | 808 +++ cdf38_1-dist/src/tests/qst2if2.f | 67 + cdf38_1-dist/src/tests/qst2ifEPOCH16.f | 329 ++ cdf38_1-dist/src/tests/qst2ifTT2000.f | 267 + cdf38_1-dist/src/tests/qst2ifTT2000UnixTime.f | 130 + cdf38_1-dist/src/tests/qst2ifdf.f | 774 +++ cdf38_1-dist/src/tests/qstleapsecondsinfo.f | 98 + cdf38_1-dist/src/tools/Makefile | 222 + cdf38_1-dist/src/tools/cdf2skt.c | 2109 +++++++ cdf38_1-dist/src/tools/cdfcmp.c | 3300 +++++++++++ cdf38_1-dist/src/tools/cdfcvt.c | 3410 +++++++++++ cdf38_1-dist/src/tools/cdfdir.unix | 61 + cdf38_1-dist/src/tools/cdfdump.c | 1768 ++++++ cdf38_1-dist/src/tools/cdfedit.c | 1655 ++++++ cdf38_1-dist/src/tools/cdfedit1.c | 3863 ++++++++++++ cdf38_1-dist/src/tools/cdfedit2.c | 2276 ++++++++ cdf38_1-dist/src/tools/cdfedit3.c | 919 +++ cdf38_1-dist/src/tools/cdfinq.c | 1377 +++++ cdf38_1-dist/src/tools/cdfirsdump.c | 3441 +++++++++++ cdf38_1-dist/src/tools/cdfleapsecondsinfo.c | 174 + cdf38_1-dist/src/tools/cdfmerge.c | 2618 +++++++++ cdf38_1-dist/src/tools/cdfstat1.c | 614 ++ cdf38_1-dist/src/tools/cdfstat2.c | 585 ++ cdf38_1-dist/src/tools/cdfstats.c | 1022 ++++ cdf38_1-dist/src/tools/cdfvalidate.c | 250 + cdf38_1-dist/src/tools/cdfxp.c | 4996 ++++++++++++++++ cdf38_1-dist/src/tools/cdfxp1.c | 5187 +++++++++++++++++ cdf38_1-dist/src/tools/cdfxp2.c | 3300 +++++++++++ cdf38_1-dist/src/tools/cdfxp3.c | 422 ++ cdf38_1-dist/src/tools/skt2cdf.c | 2818 +++++++++ cdf38_1-dist/src/tools/tocvt.c | 122 + cdf38_1-dist/src/tools/toolbox1.c | 4740 +++++++++++++++ cdf38_1-dist/src/tools/toolbox2.c | 1198 ++++ cdf38_1-dist/src/tools/toolbox3.c | 4521 ++++++++++++++ cdf38_1-dist/src/tools/toolbox4.cpp | 149 + cdf38_1-dist/src/tools/widgets.c | 3297 +++++++++++ cdf38_1-dist/src/tools/windoz.c | 2802 +++++++++ setup.py | 3 +- 197 files changed, 123341 insertions(+), 1 deletion(-) create mode 100644 cdf38_1-dist/CDFLeapSeconds.txt create mode 100644 cdf38_1-dist/CDF_copyright.txt create mode 100644 cdf38_1-dist/CHANGES.txt create mode 100644 cdf38_1-dist/HOWTO.run-Java-tools create mode 100644 cdf38_1-dist/HOWTO.run-cdf-json-tools create mode 100644 cdf38_1-dist/HOWTO.run-cdf-xml-tools create mode 100644 cdf38_1-dist/HOWTO.run_previous_version create mode 100644 cdf38_1-dist/Help.all create mode 100644 cdf38_1-dist/Help.install create mode 100644 cdf38_1-dist/Help.test create mode 100644 cdf38_1-dist/Makefile create mode 100644 cdf38_1-dist/Note.1st create mode 100644 cdf38_1-dist/Note.gcc create mode 100644 cdf38_1-dist/Note.intel create mode 100644 cdf38_1-dist/Note.linux create mode 100644 cdf38_1-dist/Note.macosx create mode 100644 cdf38_1-dist/Note.noCC create mode 100644 cdf38_1-dist/Note.solaris create mode 100644 cdf38_1-dist/README.after_install create mode 100644 cdf38_1-dist/README.install create mode 100644 cdf38_1-dist/README.install_java_APIs create mode 100644 cdf38_1-dist/README_cdf_tools.txt create mode 100644 cdf38_1-dist/Release.notes create mode 100644 cdf38_1-dist/Welcome.txt create mode 100644 cdf38_1-dist/cdfjava/JavaAPIs.txt create mode 100644 cdf38_1-dist/cdfjava/cdfjson/AAREADME.1ST create mode 100644 cdf38_1-dist/cdfjava/cdfjson/CDF2Json.java create mode 100644 cdf38_1-dist/cdfjava/cdfjson/CDFJsonReader.java create mode 100644 cdf38_1-dist/cdfjava/cdfjson/Json2CDF.java create mode 100755 cdf38_1-dist/cdfjava/cdfjson/Readme.txt create mode 100644 cdf38_1-dist/cdfjava/cdfjson/ShowCDFJson.java create mode 100644 cdf38_1-dist/cdfjava/cdfjson/po.txt create mode 100644 cdf38_1-dist/cdfjava/cdfjson/wi.txt create mode 100644 cdf38_1-dist/cdfjava/cdfml/AAREADME.1ST create mode 100644 cdf38_1-dist/cdfjava/cdfml/Readme.txt create mode 100644 cdf38_1-dist/cdfjava/cdfml/about.cdfVarData create mode 100644 cdf38_1-dist/cdfjava/cdfml/cdf.dtd create mode 100644 cdf38_1-dist/cdfjava/cdfml/cdf.xsd create mode 100644 cdf38_1-dist/cdfjava/cdfml/test.cdf create mode 100644 cdf38_1-dist/cdfjava/cdfml/test.xml create mode 100644 cdf38_1-dist/cdfjava/cdfml/testdtd.xml create mode 100644 cdf38_1-dist/cdfjava/cdfml/testnew.cdf create mode 100644 cdf38_1-dist/cdfjava/cdfml/testxsd.xml create mode 100644 cdf38_1-dist/cdfjava/cdftools/CDFToolsDriver.jar create mode 100644 cdf38_1-dist/cdfjava/classes/cdfjava.jar create mode 100644 cdf38_1-dist/cdfjava/classes/cdfjson.jar create mode 100644 cdf38_1-dist/cdfjava/classes/cdfml.jar create mode 100644 cdf38_1-dist/cdfjava/classes/gson-2.8.6.jar create mode 100644 cdf38_1-dist/cdfjava/classes/javax.json-1.0.4.jar create mode 100644 cdf38_1-dist/cdfjava/examples/CreateCDF.java create mode 100644 cdf38_1-dist/cdfjava/examples/ReadCDF.java create mode 100644 cdf38_1-dist/cdfjava/examples/ReadMetaCDF.java create mode 100644 cdf38_1-dist/cdfjava/examples/test-arm.cdf create mode 100644 cdf38_1-dist/cdfjava/examples/test.cdf create mode 100644 cdf38_1-dist/cdfjava/examples/test0.cdf create mode 100644 cdf38_1-dist/cdfjava/examples/test1.cdf create mode 100644 cdf38_1-dist/cdfjava/examples/testCdfColMajor.cdf create mode 100644 cdf38_1-dist/cdfjava/examples/testCdfRowMajor.cdf create mode 100644 cdf38_1-dist/cdfjava/examples/testjson.cdf create mode 100644 cdf38_1-dist/cdfjava/examples/testo.cdf create mode 100644 cdf38_1-dist/cdfjava/jni/Makefile create mode 100644 cdf38_1-dist/cdfjava/jni/cdfNativeLibrary.c create mode 100644 cdf38_1-dist/cdfjava/jni/cdfNativeLibrary.h create mode 100644 cdf38_1-dist/cdfjava/jni/cdfjava.h create mode 100755 cdf38_1-dist/checkleapseconds.sh create mode 100755 cdf38_1-dist/modify_definition_files.sh create mode 100644 cdf38_1-dist/samples/OperateAttributes.c create mode 100644 cdf38_1-dist/samples/OperateCDF.c create mode 100644 cdf38_1-dist/samples/OperateVariables.c create mode 100644 cdf38_1-dist/samples/cacsst2.cdf create mode 100644 cdf38_1-dist/samples/cacsst2.skt create mode 100644 cdf38_1-dist/samples/cdf.inc create mode 100644 cdf38_1-dist/samples/d103a2x.cdf create mode 100644 cdf38_1-dist/samples/example.dat create mode 100644 cdf38_1-dist/samples/example1.c create mode 100644 cdf38_1-dist/samples/example1.cdf create mode 100644 cdf38_1-dist/samples/example2.cdf create mode 100644 cdf38_1-dist/samples/example2.f create mode 100644 cdf38_1-dist/samples/geocpi0.cdf create mode 100644 cdf38_1-dist/samples/geocpi0.skt create mode 100644 cdf38_1-dist/samples/geocpi1.cdf create mode 100644 cdf38_1-dist/samples/geocpi2.cdf create mode 100644 cdf38_1-dist/samples/ij01r39.cdf create mode 100644 cdf38_1-dist/samples/read_example1.c create mode 100644 cdf38_1-dist/samples/zfia10x.cdf create mode 100644 cdf38_1-dist/src/definitions/definitions.B create mode 100644 cdf38_1-dist/src/definitions/definitions.C create mode 100644 cdf38_1-dist/src/definitions/definitions.K create mode 100644 cdf38_1-dist/src/help/cdf2skt.olh create mode 100644 cdf38_1-dist/src/help/cdf2sktj.olh create mode 100644 cdf38_1-dist/src/help/cdfbrow.ilh create mode 100644 cdf38_1-dist/src/help/cdfcmp.olh create mode 100644 cdf38_1-dist/src/help/cdfcmpj.olh create mode 100644 cdf38_1-dist/src/help/cdfcvt.olh create mode 100644 cdf38_1-dist/src/help/cdfcvtj.olh create mode 100644 cdf38_1-dist/src/help/cdfdirj.olh create mode 100644 cdf38_1-dist/src/help/cdfdump.olh create mode 100644 cdf38_1-dist/src/help/cdfdumpj.olh create mode 100644 cdf38_1-dist/src/help/cdfedit.ilh create mode 100644 cdf38_1-dist/src/help/cdfedit.olh create mode 100644 cdf38_1-dist/src/help/cdfeditj.olh create mode 100644 cdf38_1-dist/src/help/cdfinq.olh create mode 100644 cdf38_1-dist/src/help/cdfinqj.olh create mode 100644 cdf38_1-dist/src/help/cdfirsdump.olh create mode 100644 cdf38_1-dist/src/help/cdfirsdumpj.olh create mode 100644 cdf38_1-dist/src/help/cdfleaptableinfo.olh create mode 100644 cdf38_1-dist/src/help/cdfleaptableinfoj.olh create mode 100644 cdf38_1-dist/src/help/cdfmerge.olh create mode 100644 cdf38_1-dist/src/help/cdfmergej.olh create mode 100644 cdf38_1-dist/src/help/cdfstats.olh create mode 100644 cdf38_1-dist/src/help/cdfstatsj.olh create mode 100644 cdf38_1-dist/src/help/cdfvalidate.olh create mode 100644 cdf38_1-dist/src/help/cdfvalidatej.olh create mode 100644 cdf38_1-dist/src/help/cdfxp.ilh create mode 100644 cdf38_1-dist/src/help/skt2cdf.olh create mode 100644 cdf38_1-dist/src/help/skt2cdfj.olh create mode 100644 cdf38_1-dist/src/include/cdf.h create mode 100644 cdf38_1-dist/src/include/cdf.inc create mode 100644 cdf38_1-dist/src/include/cdf2skt.h create mode 100644 cdf38_1-dist/src/include/cdfcmp.h create mode 100644 cdf38_1-dist/src/include/cdfconfig.h create mode 100644 cdf38_1-dist/src/include/cdfcvt.h create mode 100644 cdf38_1-dist/src/include/cdfdf.inc create mode 100644 cdf38_1-dist/src/include/cdfdist.h create mode 100644 cdf38_1-dist/src/include/cdfdump.h create mode 100644 cdf38_1-dist/src/include/cdfdvf.inc create mode 100644 cdf38_1-dist/src/include/cdfdvf2.inc create mode 100644 cdf38_1-dist/src/include/cdfdvf3.inc create mode 100644 cdf38_1-dist/src/include/cdfedit.h create mode 100644 cdf38_1-dist/src/include/cdfinq.h create mode 100644 cdf38_1-dist/src/include/cdfirsdump.h create mode 100644 cdf38_1-dist/src/include/cdfleapsecondsinfo.h create mode 100644 cdf38_1-dist/src/include/cdflib.h create mode 100644 cdf38_1-dist/src/include/cdflib64.h create mode 100644 cdf38_1-dist/src/include/cdfmd5.h create mode 100644 cdf38_1-dist/src/include/cdfmerge.h create mode 100644 cdf38_1-dist/src/include/cdfmsf.inc create mode 100644 cdf38_1-dist/src/include/cdfrev.h create mode 100644 cdf38_1-dist/src/include/cdfstats.h create mode 100644 cdf38_1-dist/src/include/cdftools.h create mode 100644 cdf38_1-dist/src/include/cdfvalidate.h create mode 100644 cdf38_1-dist/src/include/cdfxp.h create mode 100644 cdf38_1-dist/src/include/skt2cdf.h create mode 100644 cdf38_1-dist/src/include/widgets.h create mode 100644 cdf38_1-dist/src/include/windoz.h create mode 100644 cdf38_1-dist/src/tests/Makefile create mode 100644 cdf38_1-dist/src/tests/q2f4pc.f create mode 100644 cdf38_1-dist/src/tests/q2if4pc.f create mode 100644 cdf38_1-dist/src/tests/qst2Version.c create mode 100644 cdf38_1-dist/src/tests/qst2c.c create mode 100644 cdf38_1-dist/src/tests/qst2cOrig.c create mode 100644 cdf38_1-dist/src/tests/qst2cutf8.c create mode 100644 cdf38_1-dist/src/tests/qst2f.f create mode 100644 cdf38_1-dist/src/tests/qst2fOrig.f create mode 100644 cdf38_1-dist/src/tests/qst2fdf.f create mode 100644 cdf38_1-dist/src/tests/qst2futf8.f create mode 100644 cdf38_1-dist/src/tests/qst2ic.c create mode 100644 cdf38_1-dist/src/tests/qst2icEPOCH16.c create mode 100644 cdf38_1-dist/src/tests/qst2icTT2000.c create mode 100644 cdf38_1-dist/src/tests/qst2if.f create mode 100644 cdf38_1-dist/src/tests/qst2if2.f create mode 100644 cdf38_1-dist/src/tests/qst2ifEPOCH16.f create mode 100644 cdf38_1-dist/src/tests/qst2ifTT2000.f create mode 100644 cdf38_1-dist/src/tests/qst2ifTT2000UnixTime.f create mode 100644 cdf38_1-dist/src/tests/qst2ifdf.f create mode 100644 cdf38_1-dist/src/tests/qstleapsecondsinfo.f create mode 100644 cdf38_1-dist/src/tools/Makefile create mode 100644 cdf38_1-dist/src/tools/cdf2skt.c create mode 100644 cdf38_1-dist/src/tools/cdfcmp.c create mode 100644 cdf38_1-dist/src/tools/cdfcvt.c create mode 100755 cdf38_1-dist/src/tools/cdfdir.unix create mode 100644 cdf38_1-dist/src/tools/cdfdump.c create mode 100644 cdf38_1-dist/src/tools/cdfedit.c create mode 100644 cdf38_1-dist/src/tools/cdfedit1.c create mode 100644 cdf38_1-dist/src/tools/cdfedit2.c create mode 100644 cdf38_1-dist/src/tools/cdfedit3.c create mode 100644 cdf38_1-dist/src/tools/cdfinq.c create mode 100644 cdf38_1-dist/src/tools/cdfirsdump.c create mode 100644 cdf38_1-dist/src/tools/cdfleapsecondsinfo.c create mode 100644 cdf38_1-dist/src/tools/cdfmerge.c create mode 100644 cdf38_1-dist/src/tools/cdfstat1.c create mode 100644 cdf38_1-dist/src/tools/cdfstat2.c create mode 100644 cdf38_1-dist/src/tools/cdfstats.c create mode 100644 cdf38_1-dist/src/tools/cdfvalidate.c create mode 100644 cdf38_1-dist/src/tools/cdfxp.c create mode 100644 cdf38_1-dist/src/tools/cdfxp1.c create mode 100644 cdf38_1-dist/src/tools/cdfxp2.c create mode 100644 cdf38_1-dist/src/tools/cdfxp3.c create mode 100644 cdf38_1-dist/src/tools/skt2cdf.c create mode 100644 cdf38_1-dist/src/tools/tocvt.c create mode 100644 cdf38_1-dist/src/tools/toolbox1.c create mode 100644 cdf38_1-dist/src/tools/toolbox2.c create mode 100644 cdf38_1-dist/src/tools/toolbox3.c create mode 100644 cdf38_1-dist/src/tools/toolbox4.cpp create mode 100644 cdf38_1-dist/src/tools/widgets.c create mode 100644 cdf38_1-dist/src/tools/windoz.c diff --git a/cdf38_1-dist/CDFLeapSeconds.txt b/cdf38_1-dist/CDFLeapSeconds.txt new file mode 100644 index 0000000..cf57b4d --- /dev/null +++ b/cdf38_1-dist/CDFLeapSeconds.txt @@ -0,0 +1,48 @@ +; Source: +; Updated: 20161025 +; Leap Seconds Table - used by CDF +; Update it when a leap second(s) is added. +; Comment lines starts with ";" at column 1. +; Year Month Day Leap Seconds Drift + 1960 1 1 1.4178180 37300.0 0.001296 + 1961 1 1 1.4228180 37300.0 0.001296 + 1961 8 1 1.3728180 37300.0 0.001296 + 1962 1 1 1.8458580 37665.0 0.0011232 + 1963 11 1 1.9458580 37665.0 0.0011232 + 1964 1 1 3.2401300 38761.0 0.001296 + 1964 4 1 3.3401300 38761.0 0.001296 + 1964 9 1 3.4401300 38761.0 0.001296 + 1965 1 1 3.5401300 38761.0 0.001296 + 1965 3 1 3.6401300 38761.0 0.001296 + 1965 7 1 3.7401300 38761.0 0.001296 + 1965 9 1 3.8401300 38761.0 0.001296 + 1966 1 1 4.3131700 39126.0 0.002592 + 1968 2 1 4.2131700 39126.0 0.002592 + 1972 1 1 10.0 0.0 0.0 + 1972 7 1 11.0 0.0 0.0 + 1973 1 1 12.0 0.0 0.0 + 1974 1 1 13.0 0.0 0.0 + 1975 1 1 14.0 0.0 0.0 + 1976 1 1 15.0 0.0 0.0 + 1977 1 1 16.0 0.0 0.0 + 1978 1 1 17.0 0.0 0.0 + 1979 1 1 18.0 0.0 0.0 + 1980 1 1 19.0 0.0 0.0 + 1981 7 1 20.0 0.0 0.0 + 1982 7 1 21.0 0.0 0.0 + 1983 7 1 22.0 0.0 0.0 + 1985 7 1 23.0 0.0 0.0 + 1988 1 1 24.0 0.0 0.0 + 1990 1 1 25.0 0.0 0.0 + 1991 1 1 26.0 0.0 0.0 + 1992 7 1 27.0 0.0 0.0 + 1993 7 1 28.0 0.0 0.0 + 1994 7 1 29.0 0.0 0.0 + 1996 1 1 30.0 0.0 0.0 + 1997 7 1 31.0 0.0 0.0 + 1999 1 1 32.0 0.0 0.0 + 2006 1 1 33.0 0.0 0.0 + 2009 1 1 34.0 0.0 0.0 + 2012 7 1 35.0 0.0 0.0 + 2015 7 1 36.0 0.0 0.0 + 2017 1 1 37.0 0.0 0.0 diff --git a/cdf38_1-dist/CDF_copyright.txt b/cdf38_1-dist/CDF_copyright.txt new file mode 100644 index 0000000..c9a317a --- /dev/null +++ b/cdf38_1-dist/CDF_copyright.txt @@ -0,0 +1,17 @@ +Common Data Format (CDF) +Space Physics Data Facility +NASA/Goddard Space Flight Center + +This software may be copied or redistributed as long as it is not sold +for profit, but it can be incorporated into any other substantive +product with or without modifications for profit or non-profit. If the +software is modified, it must include the following notices: + + - The software is not the original (for protection of the original + author's reputations from any problems introduced by others) + + - Change history (e.g. date, functionality, etc.) + +This copyright notice must be reproduced on each copy made. This software is +provided as is without any express or implied warranties whatsoever. + diff --git a/cdf38_1-dist/CHANGES.txt b/cdf38_1-dist/CHANGES.txt new file mode 100644 index 0000000..2a929d4 --- /dev/null +++ b/cdf38_1-dist/CHANGES.txt @@ -0,0 +1,315 @@ +CDF Changes Log, CDF V3.8 + +V2.0.0 11-Feb-91 Release of CDF V2.0. +V2.1.0 7-Jun-91 Release of CDF V2.1. +V2.2.0 20-May-92 Release of CDF V2.2. +V2.3.0 1-Oct-92 Release of CDF V2.3. +V2.4.0 26-Jan-94 Release of CDF V2.4. +V2.5.0 21-Dec-94 Release of CDF V2.5. +V2.6.0* 23-Feb-96 Alpha release of CDF V2.6. +V2.6.0# 5-Apr-96 Beta release of CDF V2.6. +V2.6.0& 13-Jun-96 Beta release of CDF V2.6. +V2.6.0$ 17-Jun-96 Beta release of CDF V2.6. +V2.6.0@ 15-Aug-96 Beta release of CDF V2.6. +V2.6.0 10-Oct-96 Release of CDF V2.6. +V2.7.0 27-Sep-99 Release of CDF V2.7. +V2.7.1 16-May-01 Add new ports: Solaris on PC, MacOS X and Linux on + DEC/Alpha. + Correct bugs in CDFDump program. + Correct and enhance CDF-Java APIs and Java Native + Interface (JNI). + Add new Java-based tool programs for CDFEdit and CDFExport. + Add variable name checking in CDFconvert for compression + option. + Add Cygwin port for win32 on PC. Create individual tool + programs for Windows using Cygwin libraries. + 05-Dec-01 Add a new set of APIs: CDFgetrVarsRecordData, + CDFgetzVarsRecordData, CDFputrVarsRecordData and + CDFputzVarsRecordData to allow a full single + record read/write for a group of r/zVariables. + 26-Jan-02 Correct a bug in cdfcmp.c for showing dimension size + differences between two zVariables. + 28-Jun-02 Add a new option in cdfcmp.c to allow tolerance checks + while comparing two unequal data values. + 22-Jul-02 Handle f77 Fortran for Cygwin. + 25-Nov-02 Add 64-bit mode for Solaris/sparc64 for sparcv9. Also, + gcc for 64-bit is added. +V2.7.2 08-Apr-04 Change the way that current variable select is being + handled. Keep the current variable selected offset as a + reference for any following variable selection. Originally, + each time a selection of a variable or getting a variable's + field data will start the search for that variable ALWAYS + from the beginning of the variable list. It requires too + many I/Os for accessing a sequence of variables. + 04-May-04 Corrected a bug that caused the f77 to fail under 64-bit + environment. +V3.0 07-Jan-05 Changed file offset from type long (32-bit) to off_t + (64-bit) for the platform on which the data type is + supported. Changed the file I/O functions accordingly. + The CDF internal file structures are changed. Made the + library backward compatible, meaning programs created + from V3.0 can still access (read/update) the CDF files + of older version. + Expanded the length of variable and attribute name from + 64 to 256. + The CDF/Java was modified to ensure that concurrent + accessing a CDF would be thread-safe. + Added a new data type, CDF_EPOCH16, to + accommodate more refined time resolution within a + second. A new set of functions, similar to those + of CDF_EPOCH data type, was added. + Modified cdfdump tool program to be more efficient in + data reading. + 25-Mar-05 Changed JNI and Java-CDF APIs to ensure proper operations + within the multiple-threaded environment. +V3.1.0 27-May-05 Added new sets of APIs to allow Standard Interface to + interact with zVariables and other CDF-related + information. + 11-Jul-05 Added MingW port for PC. + 05-Aug-05 Added new functions to allow creating CDF files in + older, V2.7, version, not just the default V3.1. + 18-Jan-06 Modified code, including tools, to handle file path + that has ".cdf" or ".skt" extension while it is not + expected to be there. + 30-Jan-06 Add FreeBSD port for PCs. + 1-Feb-06 Added Intel C++ and Fortran compilers for Linux port on PCs. + 22-Jun-06 Added support for HPUX and AIX for both 32 and 64-bit mode. + Allow Mac OS X to build code for PPC and x386. +V3.1.1 12-Oct-06 Modified to allow upper/lower case CDF name for Windows. + Changed Epoch to make 9999-12-31 23:59:999 as encoded date + for the filled value of -1.0E31. For Epoch16, a pair of + -1.0E31 filled values is encoded as + 9999-12-31 23:59:999:999:999:999. +V3.2.0 21-Oct-06 Added MD5 checksum feature for data integrity check of the + CDF. Modified tools to use the checksum feature. + Added a couple of new tool programs: cdfdump and cdfmerge. + Renamed the original cdfdump to cdfirsdump. + 25-Apr-07 Changed the default size of cache buffers from 512 to + 10240 bytes to improve data access performance. + 18-Jun-07 Enhanced READONLY mode to improve metadata access + performance. When READONLY mode is selected, all metadata + is read and stored in internal data structures which are + then accessed whenever metadata is requested. +V3.2.1 24-Apr-08 Modified the library so a potential buffer overflow + vulnerability when reading specially-crafted (invalid) CDF + can be avoided. +V3.2.2 10-Aug-08 A maintenance release. Modified the Java tools so they can + handle CDF files with space(s) in the file path. cdfmerge + tool was modified to allow merging "Epoch" variable data + just like other variables. +V3.2.3 24-Nov-08 Modified CDFdump to add a new output option. +V3.3.0 05-Dec-08 Added an optional process to validate data fields in a CDF + when it is open. This process addresses a potential issue + of library becoming vulnerable when a compromised CDF is + accessed. A failed validation from a CDF will cause the + application to end gracefully. All CDF tools will have + sanity checks on. A new tool, cdfvalidate, is added. + Added an option to cdfdump to allow user-specified + variables to be dumped. +V3.3.1 10-jan-11 Added several new features to the cdfexport tool program: + -[include | exclude] " | varsfile=" + -[epochrange | recordrange] "" + + Bug fixed in Java-CDF APIs and a couple of new methods + were added. Added an option to cdfdump to allow a range + of records to be dumped. MingW port was revised to + handle 'pdcurses', if installed, for the curses-based + tools. Fixed cdf validation to allow some V2.0 files to + be valid. Library bugs fixed: read/delete/read scenario, + updated alloc/max record number when adding records to + a compressed variable before closing the file, modified + last record number in VXRs when records are deleted. + Replaced calls to sprintf/vsprintf with snprintf/vsnprintf. + Added a new set of functions to allow encode/parse epoch + data in ISO 8601 format in the CDF library. + 01-Aug-11 For version 3.3.1.1 + Modified code to handle 64-bit Fortran on Solaris/Intel + port. Minor fixed in the CDF java and cdfml class methods. +V3.3.2 05-Aug-11 Added two new data types: + CDF_INT8: 8-byte signed integer + CDF_TIME_TT2000: 8-byte integer of epoch from TT2000 with + leap seconds + A new tool, cdfleapsecondsinfo, to show the information i + of the leap seconds used in the CDF. Change the default + CDF encoding to the most popular hardware of + IBMPC_ENCODING. Added an opion to convert epoch between + CDF_EPOCH/EPOCH16 and CDF_TIME_TT2000 in cdfconvert tool. + 15-Aug-11 For version 3.3.2.1 + Fixed the code to handle TT2000 base time. + 01-Sep-11 For version 3.3.2.2 + Modified code to handle 64-bit Fortran on Solaris/Intel + port. Minor fixed in the CDF java and cdfml class methods. + A fixed bug in the library. + 11-Jan-12 For version 3.3.2.3 + Modified email address for CDFsupport. Modified cdfml: DTD + and XSD to add CDF_INT8 and CDF_TIME_TT2000 data types. + Changed date/time parameters for compute_TT2000 + and TT2000_breakdown functions from double to int, + similar to compute_epoch and EPOCH_breakdown. Minor change + in CDFUtils java code. Revised default pad, dummy and + illegal values for TT2000 data type. +V3.4.0 17-Feb-12 Convert V3.3.2.3 to new version. Reset pad values for + INT8 and TT2000 data types. + 10-May-12 For version 3.4.1.0 + Bugs fixed in core library. Minor changes in skt2cdf tool + program and cdfdump help. Fixed cdfmerge while using text + file for input files control. Modified Java CDF class's + open method to delay collecting variable and attribute data. +V3.5.0 25-Feb-13 The original beta version + for version 3.5.0.0 + Used open source zlib source code to replace CDF's GZIP + compression/decompression, which was modified from original + code by Jean-loup Gailly and Mark Adler, in the previous + versions. Bugs fixed. Modified the default blocking factor + for compressed variable data. New features were added in + cdfdump. + 15-Sep-13 for version 3.5.0.1 (the official release version) + Fixed minor memory leaks in core library and JNI. + Added a new option to cdfdump tool for how to show the + floating-point values if FORMAT entry is missing. Added + support for Visual Basic on Windows. Pad value is set when + a variable is created. Fixed code to save CDFid for 64-bit + Fortran when a CDF is open/created, even only 4-byte of it + is used in Fortran code. Default pad values are set with + rather invalid values, so they can be recognized easily. + 31-Mar-14 for version 3.5.0.2 + Use the latest zlib version 1.2.8 without code changes. + Minor code changes for filling space(s) for writing string + type pad value. 64-bit Windows package now distributes + 64-bit Cygwin-based libraries and tools. Bugs fixed. Added + support for nan, inf and -inf for floating point values in + the tool programs. +V3.6.0 5-Feb-15 for version 3.6.0.3 + Added a new leap second for 2015-07-01 to the leap second + table. Added a field "LeapSecondLastUpdated" in GDR to + record what leap second table a CDF is based upon. A set of + functions to read/write/validate the field is added. + Added an option to renumber the sparse variable records + after a record(s) is deleted. Added sort and detect options + in tool cdfconvert. Skip checking the file/path name's + characters when reading a CDF file. Enforce ASCII chars for + file name (not including the directory portion) only. Minor + bug fixes. + 1-May-15 for version 3.6.0.4 + Modified cdfjava.jar. Extended status text length. +V3.6.1 20-Sep-15 for version 3.6.1.0 + Used the preserved system temporary folder, e.g., /tmp + for Linux/Unix/MacOSX, to hold the temporary file(s) + while doing compression/decompression. Set + temporary file name using the random number generator with + process id and current time as the seed. Added support + for computing TT2000 from UTC if the passed day is DOY + (day of the year from January 1st). Added a few options + to cdfconvert tool program. +V3.6.2 20-Mar-16 for version 3.6.2.0 + Modified to Makefile and installation process to support + Mac OS X El Captain (10.11). Modified the library to handle + string data that has a shorter length than defined (number + of elements) when reading/writing. It will be filled with + spaces, starting from the NUL. + 13-May-16 for version 3.6.2.1 + Bug fixed for handling TT2000 time computing if only + year/month/day is given. Speed up the leap second + time/table validation. +V3.6.3 20-Oct-16 for version 3.6.3.0 + Added a new set of C-based APIs for reading the CDF data. + Each of these APIs, identified as CDFread..., will return + a pointer to the library allocated space for the data. + Caller is responsible to free the space after use. New + features were added to cdfstats and cdfdump tool programs. + A new leap second is added for 1/1/2017. + 10-Jan-17 for version 3.6.3.1 + Updated the leap second last updated header in a CDF from + the (latest) leap second table if the CDF is created based + on an existing master CDF that has an older leap second + table. +V3.6.4 10-Feb-17 for version 3.6.4.0 + For Unix-based systems, use C's "mkstemp" function to create + the temporary files, in the template form of + "mycdftmp.XXXXXX". On Windows, use VS's "_mktemp_s" to do + the same. Use the random number generator to create the + temporary file name as the last resort if C's function + fails to create one. + For Unix-based systems, the temporary files will be + created in the current directory if it is writable and + neither environment variable CDF_TMP nor TMPDIR is defined. + Otherwise, it will try the directory defined by the + environment variable CDF_TMP first and then TMPDIR. + If the current directory is not writable, then system's + "/tmp" is used. On Windows, both "TMP" and "TEMP" directory + will be tried if CDF_TMP is not defined. If all fail, + the last resort is to use the current directory. + Modified cdfexport to not truncate variable name while + displaying its data. Have a separate patch for supporting + IDL 8.6. +V3.7.0 11-May-18 for version 3.7.0.0 + For variable attribute, multi-strings are allowed. A header + field in the internal data structure for entry is used to + stored the number of strings. A function to free the + retrieved strings, when reading, is created. The data + validation control process, thru CDF_VALIDATE environment + variable, is modified to also skip the checksum + verification, in addition to the data sanity check, if the + validation is turned off. cdfconvert tool allows the output + of the converted file to replace the source file. + Added support for ARM ports, little or big-endian. The + string-typed data for attribute entry or variable data can + be Nul-terminated. The default pad value can also be empty. + Previously, space(s) is filled if the data length is + shorter than the defined number of elements. Added openVMS + on Itanium (IA64) ports: IA64VMSi, IA64VMSd and IA64VMSg. + Added cdfj.jar, the pure Java package for CDF read and + write without needing CDF library and JNI. A revised cdf + schema is included for CDF's XML support. +V3.7.1 21-Aug-18 for version 3.7.1.0 + Modified to make the encoded date/time string for CDF_EPOCH + and CDF_EPOCH16 in the form of ISO 8601 as the default, as + yyyy-mm-ddThh:mm:ss.ccc or yyyy-mm-ddThh:mm:ss.cccuuunnnppp + respectively. Enhanced the CDFML xsd schema. Do not throw + an error if the ILLEGAL_TT2000_VALUE is encountered. When + encoding its value into date/time string, it is presented + as 1707-09-22T12:12:10.961224195. (Read CDF's C document.) + Add a set of general encoding/parsing functions for each + of the CDF epoch data type. Added a set of time conversion + functions between CDF_EPOCH/CDF_EPOCH16/CDF_TIME_TT2000 time + and unix time. Reset the rVariables' dimension to zero if + a cdf is converted, by cdfconvert, with "zMode 2". +V3.8.0 27-Oct-19 for version 3.8.0.0 + Modified the code to use a variable's FILLVAL, replacing + its PAD value, for all record varying variable's virtual + record data if it exists. To use FILLVAL, it must have a + data type equivalent to its variable's. String typed + variable's pad value is filled with a single space and + followed by NUL(s), instead of multiple spaces. + Changed skt2cdf tool program to allow handling a skeleton + table directly from Windows (with \r\n at the end in each + line) on non-Windows systems. Added new options to + cdfconvert tool program to + 1. remove non-varying dimension(s) from the source + zVariable(s) if it does not have DEPEND_* attribute + defined to the destination variable. + 2. replace any pad value(s) in a variable's data by its + FILLVAL value, if FILLVAL attribute exists and has + an equivalent data type as variable's. + Modified the tool programs to use FORMAT attribute to encode + both data and metadata if the format is to be used. These + include all C-based and Java-based tools. A new option is + added to cdf2skt tool to allow users to choose how to + display variable's metadata and data, either with or witout + format. + 7-Jul-20 for version 3.8.0.1 + Modified CDF epoch breakdown functions that might cause + incorrect day being returned. +V3.8.1 27-Oct-21 for version 3.8.1.0 + Added a set of easy-to-use read functions: READCDF and + READVARIABLE, to read CDF and variable information for + Java, C#, Perl and IDL interface in a single call. + Allowed building the fat JNI from the main CDF Makefile + build. Modified TT2000 type handling routine in C/Java to + accept minus leap second in the future. Added Json-CDF + converters in Java package. Enhanced netCDF-to-CDF + converter. Support characters in UTF-8 encoding. Dynamic + space allocation is no longer placed into a linked list. + Modified TT2000 handling function to handle reverse + leap second (no 59 second). Added support for Apple M1 + processor. diff --git a/cdf38_1-dist/HOWTO.run-Java-tools b/cdf38_1-dist/HOWTO.run-Java-tools new file mode 100644 index 0000000..503623a --- /dev/null +++ b/cdf38_1-dist/HOWTO.run-Java-tools @@ -0,0 +1,77 @@ +How to run Java CDF Tools +------------------------- + +Note for Mac OS X users: + If you installed the pre-bulit package (universal binary), all + environment variables mentioned below are set automatically in + your log-in shell. They are defined when a terminal session is open. + Alternatively, you can doble-click the CDFToolsDriver.app from Finder + to invoke the application. No need to set up the environment variables, + either. If you build the libraries and tools from the source code, then + the following steps are needed to define the environment variables for + running the Java tools. + + For Windows users: + If use the pre-built package, just click the CDFToolsDriver from + "Start" -> "All Programs" -> "CDF Distribution...". + All are set when the is installed. + +1. Set the CLASSPATH environment variable. + + CLASSPATH should point to the locations (full path names) of the + following files: + + /cdfjava/cdftools/CDFToolsDriver.jar + /cdfjava/classes/cdfjava.jar + /cdfjava/classes/cdfjson.jar + /cdfjava/classes/gson-2.8.6.jar + /cdfjava/classes/javax.json-1.0.4.jar + /cdfjava/cdfml/cdfml.jar + + Example: + setenv CLASSPATH .:/home/cdf/cdf38_1-dist/cdfjava/classes/cdfjava.jar: \ + /home/cdf/cdf38_1-dist/cdfjava/classes/cdfjson.jar: \ + /home/cdf/cdf38_1-dist/cdfjava/classes/gson-2.8.6.jar: \ + /home/cdf/cdf38_1-dist/cdfjava/classes/javax.json-1.0.4.jar: \ + /home/cdf/cdf38_1-dist/cdfjava/cdftools/CDFToolsDriver.jar \ + /home/cdf/cdf38_1-dist/cdfjava/cdfml/cdfml.jar + + +2. Set the LD_LIBRARY_PATH environment variable. + + LD_LIBRARY_PATH (DYLD_LIBRARY_PATH for Mac OS X) should point to the + following files: + + - the location (full path name) of the libcdfNativeLibrary.[so|sl|jnilib] + + - the location (full path name) of the CDF library (libcdf.[so|sl|dylib] + + Example: + setenv LD_LIBRARY_PATH .:/home/cdf/cdf38_1-dist/cdfjava/lib: \ + /home/cdf/cdf38_1-dist/lib + + Or, for Mac OS X, + + setenv DYLD_LIBRARY_PATH .:/Users/cdf/cdf38_1-dist/cdfjava/lib: \ + /Users/cdf/cdf38_1-dist/lib + + +3. Invoke a desired CDF tool as follows: + + At the operating system prompt, type "java CDFToolsDriver". + + This will bring up the main menu from which a desired tool can be invoked by + selecting the desired CDF tool with a single click. + + IMPORTANT NOTE: + Make sure you run the one of the definition files in the /bin + directory (e.g. definitions.[C | B | K] before you execute the + above command so that the CDF_BASE environment variable is defined. + +3. Please note: + For those programs that allow the option of directing the output + to the screen, instead of a file, make sure that the output is not + too big. The Java Virtual Machine may hung or run out of memory + for a big output. + +For any questions/comments, please send them to gsfc-cdf-support@lists.nasa.gov. diff --git a/cdf38_1-dist/HOWTO.run-cdf-json-tools b/cdf38_1-dist/HOWTO.run-cdf-json-tools new file mode 100644 index 0000000..85e36b6 --- /dev/null +++ b/cdf38_1-dist/HOWTO.run-cdf-json-tools @@ -0,0 +1,43 @@ +*************************************************************************** +* Please make sure that you have done the following before proceeding * +* with the CDF Json utilities: * +* * +* - Installed JDK 1.7 or later. * +* - installed/built the CDF distribution package. * +* - executed the setenv.bat located in the top distribution to set up * +* proper environment variables. * +*************************************************************************** + +Instructions for using the CDF's Json programs +----------------------------------------------- + +1. CDF2Json: convert a CDF file into a CDF-specific Json form. + + To get the help information and valid arguments/options, enter: + + java CDF2Json + + Use the proper options to run the converter. + +2. Json2CDF: converter a CDF-specific Json file into a CDF file. + + To get the instructions and valid arguments/options, enter: + + java Json2CDF + + Use the proper options to run the converter. + +3. CDFJsonReader: display the data contents from a CDF-specific Json file + + To get the instructions and valid arguments/options, enter: + + java CDFJsonReader + + Use the proper options to run the reader. + +Please direct any comments or questions to: + + NASA-CDF-Support@nasa.onmicrosoft.com + +Note: cdfjson.jar and others are in classes folder. + diff --git a/cdf38_1-dist/HOWTO.run-cdf-xml-tools b/cdf38_1-dist/HOWTO.run-cdf-xml-tools new file mode 100644 index 0000000..c96805a --- /dev/null +++ b/cdf38_1-dist/HOWTO.run-cdf-xml-tools @@ -0,0 +1,78 @@ +*************************************************************************** +* Please make sure that you have done the following before proceeding * +* with the CDF Markup Language (CDFML) utilities: * +* * +* - Installed JDK 1.7 or later. * +* - installed/built the CDF distribution package. * +* - optionally, install Sun's Multi-Schema XML Validator. * +*************************************************************************** + +Instructions for using the CDF's CDFML programs +----------------------------------------------- + +1. Set the CLASSPATH and LD_LIBRARY_PATH (DYLD_LIBRARY_PATH for Mac OSX) + environment variables. [On Windows, run setenv.bat located in the top + distribution to the setup, if not already done when the package + was installed.] + + 1) CLASSPATH should point to the following information: + - the location (full path name) of the cdfml.jar file that was + extracted in step 1. + - the location (full path name) of the cdfjava.jar file. + + Examples: + + - using Sun's V1.7 + + setenv CLASSPATH ${CLASSPATH}:.: \ + /home/cdf/cdf38_1-dist/cdfjava/classes/cdfjava.jar: \ + /home/cdf/cdf38_1-dist/cdfjava/cdfml/cdfml.jar + + Note: + Absolute/full path name (not relative path) MUST be used when adding + the location of a program to the CLASSPATH environment variable. + + + 2) LD_LIBRARY_PATH should point to the following information: + - the location (full path name) of the CDF-Java JNI + libcdfNativeLibrary.[so|sl|jnilib] (it should be under cdfjava/lib + from the distribution) + + - the location (full path name) of the CDF shared library that is + defined by the environment variable CDF_LIB. This variable is + defined when the CDF library is installed. + + Example: + setenv LD_LIBRARY_PATH .:/home/cdf/cdf38_1-dist/cdfjava/lib:${CDF_LIB} + + OR for Mac OSX, + setenv DYLD_LIBRARY_PATH .:/home/cdf/cdf38_1-dist/cdfjava/lib:${CDF_LIB} + + +3. Use CDF2CDFML Java program to create a CDFML document from a CDF file. + To get the instructions and valid arguments/options, enter: + + java CDF2CDFML + +4. Use CDFML2CDF Java program to convert a CDFML document to a CDF file. To + get the instructions and valid arguments/options, enter: + + java CDFML2CDF + +5. Use Sun's Multi-Schema Validator, a Java tool, to validate a CDFML document + conforming to cdf.dtd or cdf.xsd, if needed. + + Run: java -jar msv.jar cdf.dtd test.xml or + java -jar msv.jar cdf.xsd testxsd.xml + + +Note: + If one creates a CDFML file from an existing CDF file and creates a new + CDF file from that CDFML file, the contents of the new file is the same + as the original CDF file. But the ordering of some of the variable + attributes in the new file could be different from the original file + that should be transparent to the users. + + Please direct any comments or questions to: + gsfc-cdf-support@lists.nasa.gov + diff --git a/cdf38_1-dist/HOWTO.run_previous_version b/cdf38_1-dist/HOWTO.run_previous_version new file mode 100644 index 0000000..0b32db4 --- /dev/null +++ b/cdf38_1-dist/HOWTO.run_previous_version @@ -0,0 +1,104 @@ +How to access any CDF previous version +-------------------------------------- + +1. On Linux/Unix + + Assume the previous version had been built. Otherwise, download the source + and build it. + + Execute the definitions shell to set up proper environment variables and + aliases from a previous version in a terminal session: + + From Bourne shell: + + $ . /bin/definitions.B + + where is the base folder of a previous CDF version, e.g., + cdf38_1-dist. + + From C-shell or tcsh: + + $ source /bin/definitions.C + + Form Korn shell: + + $ . /bin/definitions.K + + Once, all environment variables and aliases are set, the dynamically loaded + libraries used in Java-CDF APIs, and CDF tools, e.g., cdfexport, cdfedit, + etc, will use the designated CDF version during the terminal session. + +2. Mac OS X + + Assume the CDF pre-built package had been downloaded and installed. + Otherwise, go to the CDF home page to download it, or follow the + instructions in Linux/Unix to build it from the source. + + Execute the definitions shell to set up proper environment variables and + aliases from a previous version in a terminal session: + + From Bourne shell: + + $ . /bin/definitions.B + + where is the base folder of a previous CDF version, e.g., + /Applications/cdf/cdf38_1-dist. + + From C-shell or tcsh: + + $ source /bin/definitions.C + + Form Korn shell: + + $ . /bin/definitions.K + + Once, all environment variables and aliases are set, the dynamically loaded + libraries used in Java-CDF APIs, and CDF tools, e.g., cdfexport, cdfedit, + etc, will use the designated CDF version during the terminal session. + + If you only want to run the Java-based CDF tools, CDFToolsDriver, you don't + need to run the aforementioned definitions shell. Double-click + /CDFToolsDriver.app from finder will run the tools of that version. + +3. On Windows + + Assume the CDF pre-built package had been downloaded and installed. + Otherwise, go to CDF home page to download it. + + Bring up a command-line terminal, then go to the directory that the + intended CDF version is located, e.g. c:\CDF_distribution\cdf38_1-dist, + to check if the batch file: setenv.bat, exists. + + If it does, run setenv.bat to set up the environment variables. + If it does not, then copy the following code to setenv.bat + + @echo off + set mydir=%~dp0 + set CDF_BASE=%mydir% + set CDF_HELP=%mydir%help + set CLASSPATH=%mydir%CDFToolsDriver.jar;%mydir%lib\cdfjava.jar;%mydir%cdfml\cdfml.jar; + set PATH=%mydir%;%mydir%bin;%mydir%lib;%PATH% + set TERMINFO=%mydir%lib\terminfo + + If the previous CDF version is for V3.6.0 or later, add one more line to + the batch file: + + set CDF_LEAPSECONDSTABLE=%mydir%CDFLeapSeconds.txt + + Once setenv.bat is built, run it. + + All dynamically loaded libraries used in Java-CDF APIs, and CDF tools, + e.g., cdfexport, cdfedit, etc, will point to the designated CDF version + during the terminal session. + +4. OpenVMS + + Execute the definitions command to set up logical names and symbols from + a previous version in a terminal session: set the current directory to + the selected CDF version, e.g., [cdf38_1-dist]. Run the command: + @definitions. + + Once logical names and symbols are set, CDF tools, e.g., cdfexport, cdfedit, + etc, will point to the designated CDF version during the terminal session. + + diff --git a/cdf38_1-dist/Help.all b/cdf38_1-dist/Help.all new file mode 100644 index 0000000..9763c3e --- /dev/null +++ b/cdf38_1-dist/Help.all @@ -0,0 +1,487 @@ +Introduction +------------ + +`make all' is used to compile/link the CDF distribution. Several `make' +variables are used to configure the distribution for your particular operating +system and environment. They are specified on the command line as part of the +`make' command. The "Examples" section below illustrates how to specify `make' +variables. If your operating system and/or environment is not supported, +please contact CDFsupport (NASA-CDF-Support@nasa.onmicrosoft.com). +We will either add the support or tell you how to patch the `make' file in the +top-level directory of the CDF distribution. If your operating system and +environment is supported but you still have problems, refer to the section +"Possible Problems" below. If that doesn't help simply contact CDFsupport with +a description of the problem (eg. operating system, environment, log of error +messages, etc.). + +Make Variables +-------------- + + The supported `make' variables consist of the following... + + OS REQUIRED. The operating system being used. + ENV REQUIRED. The environment begin used (eg. C compiler). + SHARED Optional. Should the shareable CDF library be built? + CURSES Optional. Should Curses-based toolkit programs be built? + FORTRAN Optional. Should the FORTRAN interface be tested? + FC_ Optional. Specifies non-default FORTRAN compiler. + CC__ Optional. Specifies non-default C compiler. + UCOPTIONS Optional. Specifies additional options passed to the C + compiler. + MAKE Optional. Specifies make utility to use. + JNI Optional. Should the JNI library to be built? + JDK_HOME Optional. Specifies where the top-level JDK is. It is used + to build JNI library. + + A detailed description of each variable follows... + + OS= + ENV= + These variables are REQUIRED and specify the operating system you are + using and the environment in which to build the CDF distribution. These + variables are always specified as a pair. In the following list each + supported operating system is shown along with the possible environments + for that operation system... + + OS=solaris For SOLARIS on a Sun (SOLARIS 2.x == SunOS 5.x) or a PC. + The possible environments are... (Note: 64-bit mode + programs always use 64-bit (off_t) offset while it is + optional for 32-bit mode programs.) + + ENV=sparc For a Sun SPARC machine. + Compile using the Sun Solaris Studio C + compiler (cc), include files, and system + libraries. This is for building 32-bit mode + programs but using 64-bit (off_t) offset, + instead of 32-bit (size_t). The cc compiler + is expected to be in you path, thus its path + is not fully specified. + + On some SOLARIS systems, a different C + compiler may be installed. If so, e.g., + using the Sun WorkShop SPARC C compiler + (at /opt/SUNWspro/bin/cc), specify + + CC_solaris_sparc=/opt/SUNWspro/bin/cc + + as part of the `make' command where + is the location of this C compiler (or just + `cc' if this C compiler is in your path). + + ENV=sparc64 For a Sun SPARC machine. + This is similar to the above ENV by using + the Sun Solaris Studio C compiler. include + files, and system libraries. But, this is + for building 64-bit mode programs. + + As the aforementioned ENV=sparc, specify + + CC_solaris_sparc64= + + as part of the `make' command where + is the location of the C compiler if the + compiler is not in your path or it is a + different compiler. + + ENV=gnu For a Sun machine or PC (32/64-bit) building + 32-bit mode. Compile using GNU C (gcc). + This is for building 32-bit mode programs + but using the 64-bit (off_t) offset, instead + of 32-bit (size_t). + + ENV=gnu64 For a Solaris on Sparc building 64-mode. + This is similar to above ENV by + using the GNU C (gcc). But, it is for + building 64-bit mode programs. Make + sure that the gcc compiler supports the + 64-bit. + + ENV=gnu64i For a Solaris on Intel (64-bit) building + 64-bit mode. This is similar to above ENV by + using the GNU C (gcc). But, it is for + building 64-bit mode programs. Make + sure that the gcc compiler supports the + 64-bit. + + ENV=x86 For a 32-bit Intel or AMD PC running Solaris + SPARC. Compile using the Sun Studio C + compiler (/usr/bin/cc), include + files, and system libraries. This + is for building 32-bit mode programs. + + ENV=x64 For a 64-bit PC (AMD or Intel-based or + Itanium systems). Compile using the Sun + Studio C compiler (/usr/bin/cc), include + files, and system libraries. This + is for building 64-bit mode programs. + + OS=osf For OSF on a DEC Alpha. The possible environments + are... + + ENV=dec Compile using the DEC OSF C compiler (cc). + This is for building Tru64 programs and + using the 64-bit (off_t) offset, instead + of 32-bit (size_t). + + ENV=gnu Compile using GNU C (gcc). + This is for building Tru64 programs and + using the 64-bit (off_t) offset, instead + of 32-bit (size_t). + + OS=irix6 For IRIX 6.x on an SGi. The possible environments + are... + + ENV=sgin32 Compile using the SGi-supplied C compiler + (cc) in the new high performance 32-bit ABI + mode. + ENV=sgi64 Compile using the SGi-supplied C compiler + (cc) in the 64-bit mode. + ENV=gnu Compile using GNU C (gcc). + + OS=macosx For Mac OS X on a Power PC or Intel Mac. The possible + environments are... + + ENV=gnu32 Compile using the GNU compiler (gcc) for + 32-bit. + + ENV=gnu Compile using the GNU compiler (gcc) for + 64-bit. + + ENV=ppc Compile using the Apple-modified GNU C + compiler (clang) in 32-bit mode for Power PC. + + ENV=i386 Compile using the Apple-modified GNU C + compiler (clang) in 32-bit mode for Intel Mac. + This option is no longer allowed from Apple + Mac OS's Big Sur. + + ENV=x86_64 Compile using the Apple-modified GNU C + compiler (clang) in 64-bit mode for Intel Mac. + + ENV=arm Compile using the Apple-modified GNU C + compiler (clang) in its default mode (64-bit) + for Apple Silicon or other 32|64-bit ARM + platforms. Can also be used for + cross-compilation from Intel-based systems, + which will made "-arch arm64" code, if run + from an x86_64 platform. + + ENV=arm64 Compile using the Apple-modified GNU C + compiler (clang) in 64-bit mode for Apple + Silicon or other ARM platforms. May not be + available for all platforms. + + ENV=arm32 Compile using the Apple-modified GNU C + compiler (clang) in 32-bit mode for Apple + Silicon or other ARM platforms. May not be + available for all platforms. + + All built, the stand-alone tool programs are linked + dynamically. To run the programs, the environment + variable DYLB_LIBRARY_PATH needs to point to the folder + that holds libcdf.dylib dynamic library: e.g., + export DYLB_LIBRARY_PATH=/lib Korn/Bourne shell + setenv DYLB_LIBRARY_PATH /lib csh/tcsh + if the CDF is installed at folder and + libcdf.dylib is in its lib sub-directory.. + + OS=linux For Linux on an IBM PC (Intel 32/64 or AMD64), a Mac + Power PC, a Dual Alpha and ARM (Raspbian/Fedora/Ubuntu). + The possible environments are... + + ENV=gnu Compile using GNU C (gcc). + This is for building the programs using the + 64-bit (off_t) offset, instead of 32-bit + (long). It will build 64-bit mode on 64-bit + machines, or 32-bit mode on 32-bit machines. + (ARM-architecture build uses this option.) + + ENV=gnu32 Compile using GNU C (gcc). + This is for building the programs using the + 64-bit (off_t) offset, instead of 32-bit + (long). It is used to build 32-bit mode on + 64-bit machines. + + ENV=intel Compile using Intel's C++ (icc) for linux. + This is for building the programs using the + 64-bit (off_t) offset, instead of 32-bit + (long). It could build a 64-bit or 32-bit + mode on a 64-bit machine, depending the setup. + Or it will build a 32-bit mode on a 32-bit + machine. + + If Intel's FORTRAN compiler is being used, + specify + + FC_intel=ifort + + as part of the `make' command when + FORTRAN=yes is also specified. + + /***************************/ + /* NOTE for Ubuntu users */ + /***************************/ + By default, the Ubuntu operating system doesn't come with + ncurses.h that is needed to build the command-line + based interactive CDF tools (cdfedit and cdfexport). + If you don't need these two tools (other CDF tools will + still be built without ncurses.h) or don't have ncurses.h, + you need to disable the "CURSES" option to "no". + + OS=linux ENV=gnu CURSES=no all + + You can install the ncurses header files including + ncurses.h by installing the ncurses development + package with the following command: + + apt-get install libncurses5-dev + + + OS=hpux For HP-UX on an HP-9000 or IA-64. The possible + environments are... + + ENV=opt Compile using the C compiler "sold as an + optional separate product" (see the `man' + page for `cc'). This is for 32-bit mode. + ENV=opt64 Compile using the C compiler "sold as an + optional separate product" (see the `man' + page for `cc'). This is for 64-bit mode. + ENV=gnu Compile using GNU C (gcc). This is for 32-bit + mode. + ENV=gnu64 Compile using GNU C (gcc). This is for 64-bit + mode. + + The Curses-based toolkit programs rely on `ncurses' being + available. It's currently set to off. + + OS=aix For AIX on an IBM RS-6000/pSeries/Power5. The possible + environments are... + + ENV=ibm Compile using the IBM-supplied VisualAge C + compiler (cc). This is for 32-mode. + ENV=ibm64 Compile using the IBM-supplied VisualAge C + compiler (cc). This is for 64-mode. + ENV=gnu Compile using GNU C (gcc). This is for 32-mode. + ENV=gnu64 Compile using GNU C (gcc). This is for 64-mode. + + OS=cygwin For Cygwin on a PC. The possible environments are... + + ENV=gnu Compile using GNU C (gcc). This is the C + compiler for Cygwin systems. The Curses-based + toolkit programs rely on `ncurses' being + available. + All built, stand-alone tool programs will be linked + dynamically. To run the programs, PATH environment + variable needs to point to the folder that holds + libcdf.dll dynamic library: e.g., + set PATH=\lib:%PATH% for Windows command prompt + export PATH=/lib:$PATH for Bash under Cygwin + if the CDF is installed at folder and + libcdf.dll is in lib directory.. + + OS=freebsd For freeBSD 4/5/6 on a PC. The possible environments + are... + + ENV=gnu Compile using GNU C (gcc). This seems to + be the C compiler most commonly found on + freeBSD systems. + + OS=mingw For MinGW on a PC. The possible environments are... + + ENV=gnu Compile using GNU C (gcc). This is the C + compiler for MinGW systems. The Curses-based + toolkit programs rely on `pdcurses' being + installed. + All built, stand-alone tool programs will be linked + dynamically. To run the programs, PATH environment + variable needs to point to the folder that holds + libcdf.dll dynamic library: e.g., + set PATH=\lib:%PATH% for Windows command prompt + export PATH=/lib:$PATH for Bash under MingW + if the CDF is installed at folder and + libcdf.dll is in lib directory.. + + SHARED=yes|no + This variable defaults to `yes' on those operating systems that + support shareable libraries (in a reasonable way). The operating + systems that do not support shareable libraries are Ultrix (DECstation), + IRIX 3.x and 4.x (SGi), Mach (NeXT or MacOS X server) and HP-UX (HP) + if the "standard" C compiler is used. Specifying `no' prevents the + creation and testing of the shareable CDF library. + + CURSES=yes|no + This variable defaults to `yes' on those operating system/environment + combinations which support System V flavored Curses. Specifying `no' + prevents the compilation/linking of the toolkit programs which + depend on the Curses full-screen management package. + Note: To fully support UTF-8 encoded characters, a new version of + ncurses (at least V6.0 | 6.1) is needed. Try to download the + latest source from this site: + https://invisible-island.net/ncurses/ + + FORTRAN=yes|no + This variable defaults to `no' if not specified. Specifying `yes' + causes the compilation/linking of test programs for the FORTRAN + interfaces. You must of course have a FORTRAN compiler installed + on your system if you specify `yes'. Note that the FORTRAN interfaces + will always be present in the CDF library. i + Note: As of Apple Silicon M1, gFORTRAN is not yet ready to make + pure ARM-based code. + + FC_= + This variable defaults to f77 or gfortran in most cases with the + following exceptions: + os=solaris : compiler=g77 + os=aix : compiler=xlf + os=cygwin : compiler=g77 + Note that if the FORTRAN compiler is not the default, there may be + problems with compilation/linking because CDF symbol names defined + in the FORTRAN interface to the C based CDF library will not match + those generated by the FORTRAN compiler. If problems are encountered, + it will generally be because the CDF library symbol names have two + trailing underscores while the FORTRAN compiler is using one trailing + underscore. The default behavior of the make process in generating + CDF library FORTRAN interface symbol names can be overridden with the + UCOPTIONS make variable. Trailing single underscores can be forced with + -Dsingle_underscore (i.e., UCOPTIONS=-Dsingle_underscore). No trailing + underscore or double trailing underscores can also be forced with + -Dno_underscore, -Ddouble_underscore or -fsecond-underscore respectively. + It is known that f77 and g77 requires double underscores while f90, f95, + and gfortran default to single underscores. + + UCOPTIONS= + This variable allows the addition of user supplied C options to those + already defined in the make process (dependent on OS and ENV). It + may be necessary to use this make variable to accommodate non-default + FORTRAN compilers (see FC_). + + CC__= + This variable defaults to gcc when env=gnu, ppc, ppc64, or i386 + and cc otherwise with the following exceptions: + os=solaris + env=sparc : compiler=/opt/SUNWspro/bin/cc + env=sparc64 : compiler=/opt/SUNWspro/bin/cc + os=linux + env=intel : compiler=icc + + MAKE= + This variable allows a different make utility to be used, instead of the + the default. It is more specifically applicable to Solaris on Intel as + its native make might have difficulties handling certain statements in + the Makefile. Use GNU version of make, gmake, will solve the problem. + + JNI=yes|no + This variable defaults to `no' if not specified. Specifying `yes' + causes the compilation/linking of JNI library for Java-CDF interface. + Make sure the JDK home directory is provided, through either JDK_HOME + variable to Makefile or an environment variable. The JNI library will + be linked with the static CDF library. + + JDK_HOME= + This variable specifies where the top-level JDK home directory is. This + is needed to build JNI library. The Java development kit home directory + can also be set through an environment variable of the same name or + another name, JAVA_HOME. Make sure JNI is consistent with the Java + application with either 64 or 32-bit mode. This is the top level of the + JDK location. For examples, on Mac, it is like: + JDK_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_241.jdk + For Linux, it is like: + JDK_HOME=/usr/lib/jvm/java-1.8.0 + +Examples +-------- + + For example, to build the CDF distribution on a Sun running SunOS 4.1 using + the System V C compiler environment use the command... + + make OS=sunos ENV=sysV all + + To build the CDF distribution on a linux machine using gnu compilers and + building the FORTRAN interface test programs with the non-default compiler, + gfortran... + + make OS=linux ENV=gnu FORTRAN=yes FC_linux=gfortran all + + Note that `all' is at the end of each command line after any `make' + variables. + +Possible Problems +----------------- + + Non-System V Curses. + If you get compiler errors when trying to build the Curses-based toolkit + programs (CDFedit, CDFlist, and CDFwalk), it will most likely be because + you are using Berkeley rather than System V Curses. If System V Curses + is not available, then specify `CURSES=no' (causing CDFedit, CDFlist, and + CDFwalk to not be built). + + Undefined symbols when using GNU C. + When linking the FORTRAN test programs to a CDF library built with GNU C + you may get undefined symbols. + + C compiler not found. + This can occur if the C compiler being used is not installed in the + expected location. This is usually only a problem on those systems + which support multiple C compilers (eg. SunOS/SOLARIS). If you know + the location of the C compiler also enter... + + CC__= + + as part of the `make' command where is the operating system, + is the environment, and is the location of the C compiler. + Note that could simply be specified as `cc' if the C + compiler being used is in your path. + + Shareable libraries. + For those operating systems supporting shareable libraries, a + shareable CDF library may be built. On most of these systems a + C compiler option is required specifying position-independent-code + (PIC) which is necessary in a shareable library. Unfortunately, PIC + is not always supported as expected by a C compiler. If compile-time + or run-time errors occur, you may have to try using a different PIC + option or no PIC option at all (because in some cases, believe it or + not, PIC is the default and specifying the PIC option causes problems). + The following list of operating systems and environments show the PIC + options which will be used and the possible alternative PIC options + you may have to try. + + O.S. Environment(s) Default PIC Alternative PICs + ------------------------------------------------------------ + sunos bsd,bsd5,sysV -pic + sunos gnu,gnu5 -fpic (no PIC) + solaris bsd,bsd5 -pic (no PIC) + solaris sparc,sysV -K pic (no PIC),-pic + solaris gnu,gnu5 -fpic (no PIC) + hpux opt +z (no PIC) + hpux posix +z (no PIC) + hpux gnu -fpic (no PIC) + aix ibm (no PIC) + aix gnu -fpic (no PIC) + osf dec (no PIC) + osf gnu -fpic (no PIC) + irix5 sgi -KPIC + irix5 gnu -fpic + irix6 sgi32,sgi64 -KPIC + irix6 gnu -fpic + linux gnu -fPIC (no PIC) + + To specify a PIC option other than the default, add a `make' variable + definition to the `make all' command of the form... + + "PIC__=" + + where is the operating system, is the environment, and + is the alternative PIC option (which can be absent if no + PIC option is desired). Note that the double-quote marks are generally + required if the `make' variable definition contains spacing. For + example, to change the PIC option to `-pic' for Solaris using the + SPARC C environment use... + + "PIC_solaris_sparc=-pic" + + For no PIC option use... + + "PIC_solaris_sparc=" + + If your operating system/environment is not listed in the above table, + then the shareable CDF library is not supported. diff --git a/cdf38_1-dist/Help.install b/cdf38_1-dist/Help.install new file mode 100644 index 0000000..953cb79 --- /dev/null +++ b/cdf38_1-dist/Help.install @@ -0,0 +1,22 @@ +`make install' is used to install (copy) the files necessary for using CDF +into directories named `lib', `include', and `bin' (these directories will be +created if necessary). The only optional `make' variable is as follows... + + INSTALLDIR= + where is the directory path of where the `lib', `include', and + `bin' directories exist or will be created if necessary. If this is not + specified, a default path of `.' is used (which specifies the current + directory level). + +For example, to install the CDF distribution at the current directory level +enter the following... + + make install + +If you wanted to install the distribution at a different location, for +instance `/usr/local/cdf', enter the following... + + make INSTALLDIR=/usr/local/cdf install + +Note that `install' is at the end of the command line after the `make' +variable. diff --git a/cdf38_1-dist/Help.test b/cdf38_1-dist/Help.test new file mode 100644 index 0000000..7722028 --- /dev/null +++ b/cdf38_1-dist/Help.test @@ -0,0 +1,5 @@ +`make test' is used to test the CDF library. The tests for the C interfaces +are always performed. The tests for the Fortran interfaces are only performed +if Fortran testing was requested during the `make all' step. The tests for +the interfaces to the shareable CDF library are only performed if the operating +system being used supports shareable libraries. diff --git a/cdf38_1-dist/Makefile b/cdf38_1-dist/Makefile new file mode 100644 index 0000000..4e3e592 --- /dev/null +++ b/cdf38_1-dist/Makefile @@ -0,0 +1,2511 @@ +#------------------------------------------------------------------------------ +# Copyright 1996-2016 United States Government as represented by the +# Administrator of the National Aeronautics and Space Administration. +# All Rights Reserved. +#------------------------------------------------------------------------------ +# +# NSSDC/CDF Makefile for CDF distribution. +# +# Version 1.0, 2-Feb-05, SPDF/GSFC/NASA. +# +# Modification history: +# +# V1.0 02-Feb-05, M Liu Original version. +# V1.1 30-May-05, M Liu Changed the Fortran compiler to g95 (from f77), +# an open source, if possible. +# V1.2 11-Jul-05, M Liu Added MinGW port for PC. +# V1.3 30-Jan-06, M Liu Added FreeBSD for PC. +# V1.4 1-Feb-06, M Liu Added Intel C port for linux. +# V1.5 19-Jun-06, M Liu Added AIX and HP-UX ports. +# V1.6 23-Aug-06, M Liu Added cdfirdump and cdfmerge. +# V1.7 12-Feb-07, D Berger Added -ff2c to the linux, gnu fortran compiler +# options. +# V1.8 04-May-07, D Berger Added UCOPTIONS and removed -ff2c. +# V1.9 28-Apr-09, M Liu Added linux/gnu64 combination. +# V1.10 16-Dec-10, M Liu Moodified to make it work for both Mac OS X +# 10.5 and 10.6. +# V1.11 21-Mar-11, M Liu No longer support for g77. Use gfortran or g95. +# V1.12 21-Jul-11, M Liu Modified to support 64-bit Solaris on Intel +# with Sunstudio and gnu compilers. +# V1.13 18-Jun-12, M Liu Modified to support shared library for +# Cygwin and Mingw. +# V2.0 20-Feb-16, M Liu Added version to dynamic library name for Mac. +# Mac OS to build both 32 and 64-bit universal +# binary for libraries and tools. +# V3.0 16-Mar-20, M Liu For Mac OS X, Xcode version 10 or newer +# will only build x86_64 application. Only +# older versions can make both 32 and 64-mode. +# V3.8 26-Jun-20, M Liu Added JNI compilation. +# V3.9 8-Jan-21, M Liu Added no string overflow check for gnu C and +# no print directory for gnu make. +#------------------------------------------------------------------------------ +# +# Notes: +# +# `make' on DECstations complains (prints a error message) if an if-then-else +# construct evaluates to FALSE but there is no `false' part. To prevent this, +# the `NULL' command is executed as the `false' part. +# +#------------------------------------------------------------------------------ + +.SILENT: + +SHELL=/bin/bash +NULL=true +PART=all +TARGET= +SOURCE= +DESTINATION= +VERSION=3.8.1 +JDK_HOME= +JNIOS= + +#------------------------------------------------------------------------------ +# Directory locations. +#------------------------------------------------------------------------------ + +DEFSsrcDIR=src/definitions +INCsrcDIR=src/include +LIBsrcDIR=src/lib +TOOLSsrcDIR=src/tools +TESTSsrcDIR=src/tests +HELPsrcDIR=src/help +LIBsrcZlibDIR=src/lib/zlib +JNIsrcDIR=cdfjava/jni +MYHOME=$(shell printenv HOME) + +#------------------------------------------------------------------------------ +# Macros specified on the `make' command line. +#------------------------------------------------------------------------------ + +FORTRAN=no +CURSES=yes +SHARED=yes +OS= +ENV= +INSTALLDIR=. +UCOPTIONS= +JNI=no + +#------------------------------------------------------------------------------ +# Other macros. +#------------------------------------------------------------------------------ +LDLIB= +EXTRAMAKE= +MORE=$(shell uname -a | cut -f5 -d " ") +ifeq ("$(OS)","solaris") + ifeq ("$(ENV)","x86") + EXTRAMAKE=--no-print-directory + MAKE=gmake + else + ifeq ("$(ENV)","x64") + EXTRAMAKE=--no-print-directory + MAKE=gmake + else + MAKE=make + endif + endif +else + ifeq ("$(MORE)","i86pc") + EXTRAMAKE=--no-print-directory + MAKE=gmake + else + GNU=$(shell make --version | head -1 | cut -f1 -d' ') + ifeq ("$(GNU)","GNU") + EXTRAMAKE=--no-print-directory + MAKE=make + else + MAKE=make + endif + endif +endif +RANLIB=ranlib + +WHICHOS=$(shell uname) +MACVERSION=0 +# MACLIB= +XCODEVERSION= +XCODEVERSION2=0 +ifeq ("$(WHICHOS)","Darwin") + MACVERSION=$(shell uname -r | cut -f1 -d.) +# MACLIB=$(shell echo $$HOME)/lib + XCODEVERSION=$(shell /usr/bin/xcodebuild -version | sed '2d' | cut -f2 -d' ') + XCODEVERSION2=$(shell echo $(XCODEVERSION) | cut -f1 -d.) + FORJNI=/Contents/Home +else + FORJNI= +endif + +JAVA_HOME= +ifneq ("$(JDK_HOME)","") + JAVA_HOME=$(JDK_HOME)$(FORJNI) +else + WHICHJDK=$(shell printenv JDK_HOME) + ifneq ("$(WHICHJDK)","") + JAVA_HOME=$(WHICHJDK)$(FORJNI) + else + WHICHJDK=$(shell printenv JAVA_HOME) + ifneq ("$(WHICHJDK)", "") + JAVA_HOME=$(WHICHJDK)$(FORJNI) + endif + endif +endif + +JNI2=$(JNI) +ifeq ("$(JNI)","yes") + ifneq ("$(JAVA_HOME)","") + JNI_FILE=$(JAVA_HOME)/include/jni.h + TEST_JNI=$(shell test -e $(JNI_FILE) && echo yes) + ifneq ($(TEST_JNI), yes) + JNI2=no + endif + else + JNI2=no + endif +endif + +#------------------------------------------------------------------------------ +# Macros for Solaris. +#------------------------------------------------------------------------------ + +SHARED_solaris=yes +FOPTIONS_solaris=-w +FOPTIONSld_solaris= +SHAREDEXT_solaris=so +AROPTIONS_solaris=rc +RANLIB_solaris=no +FC_solaris=f90 +EXEEXT_solaris= +JNIOS_solaris=solaris +JNIEXT_solaris=so + +CURSES_solaris_sparc=yes +CC_solaris_sparc=cc +LD_solaris_sparc=ld +LDOPTIONS_solaris_sparc=-G +PIC_solaris_sparc=-Kpic +COPTIONS_solaris_sparc=-DSOLARIS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -xO2 +COPTIONSZlib_solaris_sparc=-DHAVE_STDARG_H -DHAVE_UNISTD_H +COPTIONSld_solaris_sparc= +FOPTIONS_solaris_sparc=-ext_names=fsecond-underscore +FOPTIONSld_solaris_sparc= +CURSESLIB_solaris_sparc=-lcurses +SYSLIBSexe_solaris_sparc=-lm +SYSLIBSshr_solaris_sparc= + +CURSES_solaris_sparc64=yes +CC_solaris_sparc64=cc +LD_solaris_sparc64=ld +LDOPTIONS_solaris_sparc64=-G +PIC_solaris_sparc64=-Kpic +COPTIONS_solaris_sparc64=-m64 -xarch=sparcvis -DSOLARIS -DSOLARIS64 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -xO2 +COPTIONSZlib_solaris_sparc64=-DHAVE_STDARG_H -DHAVE_UNISTD_H +COPTIONSld_solaris_sparc64=-m64 -xarch=sparcvis +FOPTIONS_solaris_sparc64=-m64 -ext_names=fsecond-underscore +FOPTIONSld_solaris_sparc64=-m64 +CURSESLIB_solaris_sparc64=-lcurses +SYSLIBSexe_solaris_sparc64=-L/usr/local/lib/sparcv9 -lm +SYSLIBSshr_solaris_sparc64= + +CURSES_solaris_gnu=yes +CC_solaris_gnu=gcc +LD_solaris_gnu=gcc +LDOPTIONS_solaris_gnu=-shared +PIC_solaris_gnu=-fpic +COPTIONS_solaris_gnu=-DSOLARIS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -O2 +COPTIONSZlib_solaris_gnu=-DHAVE_STDARG_H -DHAVE_UNISTD_H +COPTIONSld_solaris_gnu= +FOPTIONS_solaris_gnu=-ext_names=fsecond-underscore +FOPTIONSld_solaris_gnu= +CURSESLIB_solaris_gnu=-lcurses +SYSLIBSexe_solaris_gnu=-lm +SYSLIBSshr_solaris_gnu= + +CURSES_solaris_gnu64=yes +CC_solaris_gnu64=gcc +LD_solaris_gnu64=gcc +LDOPTIONS_solaris_gnu64=-shared -m64 +PIC_solaris_gnu64=-fpic +COPTIONS_solaris_gnu64=-DSOLARIS -DSOLARIS64 -m64 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -O2 +COPTIONSZlib_solaris_gnu64=-DHAVE_STDARG_H -DHAVE_UNISTD_H +COPTIONSld_solaris_gnu64=-m64 +FOPTIONS_solaris_gnu64=-m64 -ext_names=fsecond-underscore +FOPTIONSld_solaris_gnu64=-m64 +CURSESLIB_solaris_gnu64=-lcurses +SYSLIBSexe_solaris_gnu64=-L/usr/local/lib/sparcv9 -lm +SYSLIBSshr_solaris_gnu64= + +CURSES_solaris_gnu64i=yes +CC_solaris_gnu64i=gcc +LD_solaris_gnu64i=gcc +LDOPTIONS_solaris_gnu64i=-shared -m64 +PIC_solaris_gnu64i=-fpic +COPTIONS_solaris_gnu64i=-DSOLARIS -DSOLARIS64 -m64 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -O2 -DX64 +COPTIONSZlib_solaris_gnu64i=-DHAVE_STDARG_H -DHAVE_UNISTD_H +COPTIONSld_solaris_gnu64i=-m64 +FOPTIONS_solaris_gnu64i=-m64 +FOPTIONSld_solaris_gnu64i=-m64 +CURSESLIB_solaris_gnu64i=-lcurses +SYSLIBSexe_solaris_gnu64i=-lm +SYSLIBSshr_solaris_gnu64i= + +CURSES_solaris_x86=yes +CC_solaris_x86=cc +LD_solaris_x86=ld +LDOPTIONS_solaris_x86=-G +PIC_solaris_x86=-Kpic +COPTIONS_solaris_x86=-DSOLARIS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -O +COPTIONSZlib_solaris_x86=-DHAVE_STDARG_H -DHAVE_UNISTD_H +COPTIONSld_solaris_x86= +FOPTIONS_solaris_x86= +FOPTIONSld_solaris_x86= +CURSESLIB_solaris_x86=-lcurses +SYSLIBSexe_solaris_x86=-lm +SYSLIBSshr_solaris_x86= + +CURSES_solaris_x64=yes +CC_solaris_x64=cc +LD_solaris_x64=ld -64 +LDOPTIONS_solaris_x64=-G +PIC_solaris_x64=-Kpic +COPTIONS_solaris_x64=-DSOLARIS -DSOLARIS64 -m64 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DX64 -O +COPTIONSZlib_solaris_x64=-DHAVE_STDARG_H -DHAVE_UNISTD_H +COPTIONSld_solaris_x64=-m64 +FOPTIONS_solaris_x64=-m64 +FOPTIONSld_solaris_x64=-m64 +CURSESLIB_solaris_x64=-lcurses +SYSLIBSexe_solaris_x64=-lm +SYSLIBSshr_solaris_x64= + +#------------------------------------------------------------------------------ +# Macros for MacosX. +#------------------------------------------------------------------------------ + +SHARED_macosx=yes +FOPTIONS_macosx= +FOPTIONSld_macosx= +SHAREDEXT_macosx=dylib +AROPTIONS_macosx=rc +RANLIB_macosx=yes +#FC_macosx=gfortran +EXEEXT_macosx= +MACOSxlink= +MACOSxFopt= +FORTWARN= +WHICHOS=$(shell uname) +ifeq ("$(WHICHOS)","Darwin") + KERNELVERSION=$(shell uname -r | cut -f1 -d.) + ifeq ("$(KERNELVERSION)","9") + MACOSxlink=-L/usr/lib/gcc/i686-apple-darwin9/4.2.1 -lm -lc -lgcc + else + MACOSxlink=-lc -lm + MACOSxFopt=-m64 + endif + ifeq ($(shell test $(KERNELVERSION) -gt 19; echo $$?),0) +# Bigsur + XCODEDir=$(shell xcode-select -p) + LDLIB=-L$(XCODEDir)/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib +# LDLIB=-L/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib + FORTWARN=-w -fallow-argument-mismatch + endif +endif +FC_macosx=gfortran $(FORTWARN) +JNIOS_macosx=darwin +JNIEXT_macosx=jnilib + +CURSES_macosx_gnu32=yes +CC_macosx_gnu32=gcc +#LD_macosx_gnu32=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool +LD_macosx_gnu32=libtool +LDOPTIONS_macosx_gnu32=-dynamic +PIC_macosx_gnu32= +COPTIONS_macosx_gnu32=-m32 -D__MACH__ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -O2 +COPTIONSZlib_macosx_gnu32=-DHAVE_STDARG_H -DHAVE_UNISTD_H +COPTIONSld_macosx_gnu32= +FOPTIONS_macosx_gnu32=-w -m32 +FOPTIONSld_macosx_gnu32=-m32 +CURSESLIB_macosx_gnu32=-lcurses +SYSLIBSexe_macosx_gnu32=$(MACOSxlink) -m32 +SYSLIBSshr_macosx_gnu32=$(MACOSxlink) -m32 + +CURSES_macosx_gnu=yes +CC_macosx_gnu=gcc +#LD_macosx_gnu=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool +LD_macosx_gnu=libtool +LDOPTIONS_macosx_gnu=-dynamic +PIC_macosx_gnu= +COPTIONS_macosx_gnu=-m64 -D__MACH__ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -O2 +COPTIONSZlib_macosx_gnu=-DHAVE_STDARG_H -DHAVE_UNISTD_H +COPTIONSld_macosx_gnu= +FOPTIONS_macosx_gnu=-w $(MACOSxFopt) +FOPTIONSld_macosx_gnu=$(MACOSxFopt) +CURSESLIB_macosx_gnu=-lcurses +SYSLIBSexe_macosx_gnu=$(MACOSxlink) +SYSLIBSshr_macosx_gnu=$(MACOSxlink) + +CURSES_macosx_ppc=yes +CC_macosx_ppc=gcc +#LD_macosx_ppc=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool -syslibroot /Developer/SDKs/MacOSX10.5.sdk -arch_only ppc +LD_macosx_ppc=libtool -syslibroot /Developer/SDKs/MacOSX10.5.sdk -arch_only ppc +LDOPTIONS_macosx_ppc=-dynamic +PIC_macosx_ppc= +COPTIONS_macosx_ppc=-isysroot/Developer/SDKs/MacOSX10.5.sdk -arch ppc -D__ppc__ -D__MACH__ -D__APPLE__ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -O2 +COPTIONSZlib_macosx_ppc=-DHAVE_STDARG_H -DHAVE_UNISTD_H +COPTIONSld_macosx_ppc=-arch ppc -isysroot/Developer/SDKs/MacOSX10.5.sdk +FOPTIONS_macosx_ppc=-w +FOPTIONSld_macosx_ppc= +CURSESLIB_macosx_ppc=-lcurses +SYSLIBSexe_macosx_ppc=-L/Developer/SDKs/MacOSX10.5.sdk/usr/lib -L/usr/lib/gcc/powerpc-apple-darwin9/4.0.1 -lm -lc -lgcc +SYSLIBSshr_macosx_ppc=-L/Developer/SDKs/MacOSX10.5.sdk/usr/lib -L/usr/lib/gcc/powerpc-apple-darwin9/4.0.1 -lm -lc -lgcc + +CURSES_macosx_ppc64=yes +CC_macosx_ppc64=gcc +LD_macosx_ppc64=libtool -syslibroot /Developer/SDKs/MacOSX10.5.sdk -arch_only ppc64 +LDOPTIONS_macosx_ppc64=-dynamic +PIC_macosx_ppc64= +COPTIONS_macosx_ppc64=-isysroot/Developer/SDKs/MacOSX10.5.sdk -arch ppc64 -m64 -DMACOSX64 -D__ppc__ -D__MACH__ -D__APPLE__ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -O2 +COPTIONSZlib_macosx_ppc64=-DHAVE_STDARG_H -DHAVE_UNISTD_H +COPTIONSld_macosx_ppc64=-arch ppc64 -isysroot/Developer/SDKs/MacOSX10.5.sdk +FOPTIONS_macosx_ppc64=-w +FOPTIONSld_macosx_ppc64= +CURSESLIB_macosx_ppc64=-lcurses +SYSLIBSexe_macosx_ppc64=-L/Developer/SDKs/MacOSX10.5.sdk/usr/lib -L/usr/lib/gcc/powerpc-apple-darwin9/4.0.1/ppc64 -lm -lc -lgcc +SYSLIBSshr_macosx_ppc64=-L/Developer/SDKs/MacOSX10.5.sdk/usr/lib -L/usr/lib/gcc/powerpc-apple-darwin9/4.0.1/ppc64 -lm -lc -lgcc + +#COPTIONS_macosx=-Di386 -D__MACH__ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -O2 +COPTIONS_macosx=-D__MACH__ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -O2 + +CURSES_macosx_i386=yes +CC_macosx_i386=clang +ifeq ($(shell test $(XCODEVERSION2) -lt 10; echo $$?),0) + COPTIONS_macosx_i386=-arch i386 -arch x86_64 -Di386 $(COPTIONS_macosx) + COPTIONSld_macosx_i386=-arch i386 -arch x86_64 +endif +LD_macosx_i386=libtool +LDOPTIONS_macosx_i386=-dynamic +PIC_macosx_i386= +COPTIONSZlib_macosx_i386=-DHAVE_STDARG_H -DHAVE_UNISTD_H +FOPTIONS_macosx_i386=-w -m32 +FOPTIONSld_macosx_i386=-m32 +CURSESLIB_macosx_i386=-lcurses +SYSLIBSexe_macosx_i386=-lc -lm +SYSLIBSshr_macosx_i386=-lc -lm + +CURSES_macosx_x86_64=yes +CC_macosx_x86_64=clang +ifeq ($(shell test $(XCODEVERSION2) -gt 9; echo $$?),0) + COPTIONS_macosx_x86_64=-arch x86_64 -Di386 $(COPTIONS_macosx) + COPTIONSld_macosx_x86_64=-arch x86_64 +else +# COPTIONS_macosx_x86_64=-arch i386 -arch x86_64 -Di386 $(COPTIONS_macosx) +# COPTIONSld_macosx_x86_64=-arch i386 -arch x86_64 + COPTIONS_macosx_x86_64=-arch x86_64 -Di386 $(COPTIONS_macosx) + COPTIONSld_macosx_x86_64=-arch x86_64 +endif +LD_macosx_x86_64=ld +LDOPTIONS_macosx_x86_64=-dynamic -dylib +PIC_macosx_x86_64= +COPTIONSZlib_macosx_x86_64=-DHAVE_STDARG_H -DHAVE_UNISTD_H +FOPTIONS_macosx_x86_64=-w -m64 +FOPTIONSld_macosx_x86_64=-m64 +CURSESLIB_macosx_x86_64=-lcurses +SYSLIBSexe_macosx_x86_64=$(LDLIB) -lc -lm +SYSLIBSshr_macosx_x86_64=$(LDLIB) -lc -lm + +WHICHARM=$(shell uname -m) +CARM= +ifeq ("$(WHICHARM)","arm64") + CARM=-arch arm64 + FARM=-arch arm64 +else + ifeq ("$(WHICHARM)","arm") + CARM=-arch arm32 + FARM=-m32 + else + CARM=-arch arm64 + FARM=-m64 + endif +endif + +CURSES_macosx_arm=yes +CC_macosx_arm=clang +COPTIONS_macosx_arm=$(COPTIONS_macosx) $(CARM) +COPTIONSld_macosx_arm=$(CARM) +LD_macosx_arm=ld +LDOPTIONS_macosx_arm=-dynamic -dylib $(CARM) +PIC_macosx_arm= +COPTIONSZlib_macosx_arm=-DHAVE_STDARG_H -DHAVE_UNISTD_H +FOPTIONS_macosx_arm=-w $(FARM) +FOPTIONSld_macosx_arm=$(FARM) +CURSESLIB_macosx_arm=-lcurses +SYSLIBSexe_macosx_arm=$(LDLIB) -lc -lm +SYSLIBSshr_macosx_arm=$(LDLIB) -lc -lm + +CURSES_macosx_arm64=yes +CC_macosx_arm64=clang +COPTIONS_macosx_arm64=$(COPTIONS_macosx) -arch arm64 +COPTIONSld_macosx_arm64=-arch arm64 +LD_macosx_arm64=ld +LDOPTIONS_macosx_arm64=-dynamic -dylib -arch arm64 +PIC_macosx_arm64= +COPTIONSZlib_macosx_arm64=-DHAVE_STDARG_H -DHAVE_UNISTD_H +FOPTIONS_macosx_arm64=-w $(FARM) +FOPTIONSld_macosx_arm64=$(FARM) +CURSESLIB_macosx_arm64=-lcurses +SYSLIBSexe_macosx_arm64=$(LDLIB) -lc -lm +SYSLIBSshr_macosx_arm64=$(LDLIB) -lc -lm + +CURSES_macosx_arm32=yes +CC_macosx_arm32=clang +COPTIONS_macosx_arm32=$(COPTIONS_macosx) -arch arm32 +COPTIONSld_macosx_arm32=-arch arm32 +LD_macosx_arm=ld +LDOPTIONS_macosx_arm32=-dynamic -dylib -arch arm32 +PIC_macosx_arm32= +COPTIONSZlib_macosx_arm32=-DHAVE_STDARG_H -DHAVE_UNISTD_H +FOPTIONS_macosx_arm32=-w $(FARM) +FOPTIONSld_macosx_arm32=$(FARM) +CURSESLIB_macosx_arm32=-lcurses +SYSLIBSexe_macosx_arm32=$(LDLIB) -lc -lm +SYSLIBSshr_macosx_arm32=$(LDLIB) -lc -lm + +#------------------------------------------------------------------------------ +# Macros for OSF (Digital UNIX). +#------------------------------------------------------------------------------ + +SHARED_osf=yes +FOPTIONS_osf=-warn declarations -warn nounused +FOPTIONSld_osf= +SHAREDEXT_osf=so +AROPTIONS_osf=rc +RANLIB_osf=yes +FC_osf=f77 +EXEEXT_osf= +JNIOS_osf=osf +JNIEXT_osf=so + +CURSES_osf_dec=yes +CC_osf_dec=cc +LD_osf_dec=ld +LDOPTIONS_osf_dec=-shared -expect_unresolved '*' +PIC_osf_dec= +COPTIONS_osf_dec=-std1 -Dunix -ieee_with_inexact -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE +COPTIONSZlib_osf_dec=-DHAVE_STDARG_H -DHAVE_UNISTD_H +COPTIONSld_osf_dec= +FOPTIONS_osf_dec= +FOPTIONSld_osf_dec= +CURSESLIB_osf_dec=-lcurses +SYSLIBSexe_osf_dec=-lm -lc +SYSLIBSshr_osf_dec= + +CURSES_osf_gnu=yes +CC_osf_gnu=gcc +LD_osf_gnu=gcc +LDOPTIONS_osf_gnu=-shared -expect_unresolved '*' +PIC_osf_gnu=-fpic +COPTIONS_osf_gnu=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -O2 +COPTIONSZlib_osf_gnu=-DHAVE_STDARG_H -DHAVE_UNISTD_H +COPTIONSld_osf_gnu= +FOPTIONS_osf_gnu= +FOPTIONSld_osf_gnu= +CURSESLIB_osf_gnu=-lcurses +SYSLIBSexe_osf_gnu=-lm -lc +SYSLIBSshr_osf_gnu= + +#------------------------------------------------------------------------------ +# Macros for IRIX 6.x. +#------------------------------------------------------------------------------ + +SHARED_irix6=yes +FOPTIONS_irix6=-u +FOPTIONSld_irix6= +SHAREDEXT_irix6=so +AROPTIONS_irix6=rc +RANLIB_irix6=no +FC_irix6=f77 +JNIOS_irix6=irix +JNIEXT_irix6=so + +CURSES_irix6_sgin32=yes +CC_irix6_sgin32=cc +LD_irix6_sgin32=ld +LDOPTIONS_irix6_sgi32=-shared +PIC_irix6_sgin32=-KPIC +COPTIONS_irix6_sgin32=-n32 -woffall -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE +COPTIONSZlib_irix6_sgin32=-DHAVE_STDARG_H -DHAVE_UNISTD_H +COPTIONSld_irix6_sgin32=-n32 -L/usr/lib32 +FOPTIONS_irix6_sgin32=-n32 +FOPTIONSld_irix6_sgin32=-n32 -L/usr/lib32 +CURSESLIB_irix6_sgin32=-lcurses +SYSLIBSexe_irix6_sgin32=-lm -lc +SYSLIBSshr_irix6_sgin32=-lm -lc + +CURSES_irix6_sgi64=yes +CC_irix6_sgi64=cc +LD_irix6_sgi64=ld +LDOPTIONS_irix6_sgi64=-shared +PIC_irix6_sgi64=-KPIC +COPTIONS_irix6_sgi64=-64 -woffall -DIRIX64bit -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE +COPTIONSZlib_irix6_sgin64=-DHAVE_STDARG_H -DHAVE_UNISTD_H +COPTIONSld_irix6_sgi64=-64 -DIRIX64bit -L/usr/lib64 +FOPTIONS_irix6_sgi64=-64 +FOPTIONSld_irix6_sgi64=-64 -L/usr/lib64 +CURSESLIB_irix6_sgi64=-lcurses +SYSLIBSexe_irix6_sgi64=-lm -lc +SYSLIBSshr_irix6_sgi64=-lm -lc + +CURSES_irix6_gnu=yes +CC_irix6_gnu=gcc +LD_irix6_gnu=gcc +LDOPTIONS_irix6_gnu=-shared +PIC_irix6_gnu=-fpic +COPTIONS_irix6_gnu=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -O2 +COPTIONSZlib_irix6_gnu=-DHAVE_STDARG_H -DHAVE_UNISTD_H +COPTIONSld_irix6_gnu= +FOPTIONS_irix6_gnu= +FOPTIONSld_irix6_gnu= +CURSESLIB_irix6_gnu=-lcurses +SYSLIBSexe_irix6_gnu=-lm -lc +SYSLIBSshr_irix6_gnu= + +#------------------------------------------------------------------------------ +# Macros for Linux. +#------------------------------------------------------------------------------ + +SHARED_linux=yes +FOPTIONS_linux=-w +FOPTIONSld_linux= +SHAREDEXT_linux=so +AROPTIONS_linux=rc +RANLIB_linux=yes +FC_linux=gfortran +JNIOS_linux=linux +JNIEXT_linux=so + +CURSES_linux_gnu=yes +CC_linux_gnu=gcc +LD_linux_gnu=gcc +LDOPTIONS_linux_gnu=-shared +PIC_linux_gnu=-fPIC +COPTIONS_linux_gnu=-I/usr/include/ncurses -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DMALLOC_CHECK_=0 -O2 -Wno-stringop-overflow +COPTIONSZlib_linux_gnu=-DHAVE_STDARG_H -DHAVE_UNISTD_H +COPTIONSld_linux_gnu= +FOPTIONS_linux_gnu=-fsecond-underscore +FOPTIONSld_linux_gnu= +CURSESLIB_linux_gnu=-lncursesw +SYSLIBSexe_linux_gnu=-lm -lc +SYSLIBSshr_linux_gnu=-lm -lc + +CURSES_linux_gnu32=yes +CC_linux_gnu32=gcc +LD_linux_gnu32=gcc +LDOPTIONS_linux_gnu32=-shared -m32 +PIC_linux_gnu32=-fPIC +COPTIONS_linux_gnu32=-m32 -I/usr/include/ncurses -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DMALLOC_CHECK_=0 -O2 -Wno-stringop-overflow +COPTIONSZlib_linux_gnu32=-DHAVE_STDARG_H -DHAVE_UNISTD_H +COPTIONSld_linux_gnu32=-m32 +FOPTIONS_linux_gnu32=-m32 -fsecond-underscore +FOPTIONSld_linux_gnu32=-m32 +CURSESLIB_linux_gnu32=-lncursesw +SYSLIBSexe_linux_gnu32=-lm -lc +SYSLIBSshr_linux_gnu32=-lm -lc + +CURSES_linux_gnu64=yes +CC_linux_gnu64=gcc +LD_linux_gnu64=gcc +LDOPTIONS_linux_gnu64=-shared -m64 +PIC_linux_gnu64=-fPIC +COPTIONS_linux_gnu64=-m64 -I/usr/include/ncurses -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DMALLOC_CHECK_=0 -O2 -Wno-stringop-overflow +COPTIONSZlib_linux_gnu64=-DHAVE_STDARG_H -DHAVE_UNISTD_H +COPTIONSld_linux_gnu64=-m64 +FOPTIONS_linux_gnu64=-m64 -fsecond-underscore +FOPTIONSld_linux_gnu64=-m64 +CURSESLIB_linux_gnu64=-lncursesw +SYSLIBSexe_linux_gnu64=-lm -lc +SYSLIBSshr_linux_gnu64=-lm -lc + +CURSES_linux_intel=yes +CC_linux_intel=icc +LD_linux_intel=ld +LDOPTIONS_linux_intel=-shared +PIC_linux_intel=-fPIC +COPTIONS_linux_intel=-I/usr/include/ncurses -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DMALLOC_CHECK_=0 +COPTIONSZlib_linux_intel=-DHAVE_STDARG_H -DHAVE_UNISTD_H +COPTIONSld_linux_intel= +FOPTIONS_linux_intel= +FOPTIONSld_linux_intel= +CURSESLIB_linux_intel=-lcurses +SYSLIBSexe_linux_intel=-lm -lc +SYSLIBSshr_linux_intel=-lm -lc + +#------------------------------------------------------------------------------ +# Macros for AIX. +#------------------------------------------------------------------------------ + +SHARED_aix=yes +FOPTIONS_aix=-u -qcharlen=256 +FOPTIONSld_aix=-L../lib +SHAREDEXT_aix=o +AROPTIONS_aix=rc +AROPTIONS_aix64=-r -c -X 64 +RANLIB_aix=yes +FC_aix=xlf +JNIOS_aix=aix +JNIEXT_aix=o + +CURSES_aix_ibm=yes +CC_aix_ibm=cc +LD_aix_ibm=ld +LDOPTIONS_aix_ibm=-bnoentry -bM:SRE -bE:libcdf.exp +PIC_aix_ibm= +COPTIONS_aix_ibm=-DIBMRS -DAIX -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE +COPTIONSZlib_aix_ibm=-DHAVE_STDARG_H -DHAVE_UNISTD_H +COPTIONSld_aix_ibm=-L../lib +FOPTIONS_aix_ibm= +FOPTIONSld_aix_ibm=-L../lib +CURSESLIB_aix_ibm=-lcurses +SYSLIBSexe_aix_ibm=-lm -lc +SYSLIBSshr_aix_ibm=-lm -lc + +CURSES_aix_ibm64=yes +CC_aix_ibm64=cc +LD_aix_ibm64=ld +LDOPTIONS_aix_ibm64=-b64 -bnoentry -bM:SRE -bE:libcdf.exp +PIC_aix_ibm64= +COPTIONS_aix_ibm64=-q64 -DIBMRS -DAIX -DAIX64 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE +COPTIONSZlib_aix_ibm64=-DHAVE_STDARG_H -DHAVE_UNISTD_H +COPTIONSld_aix_ibm64=-q64 -L../lib +FOPTIONS_aix_ibm64= +FOPTIONSld_aix_ibm64=-L../lib +CURSESLIB_aix_ibm64=-lcurses +SYSLIBSexe_aix_ibm64=-lm -lc +SYSLIBSshr_aix_ibm64=-lm -lc + +CURSES_aix_gnu=yes +CC_aix_gnu=gcc +LD_aix_gnu=gcc +LDOPTIONS_aix_gnu=-shared +PIC_aix_gnu=-fpic +COPTIONS_aix_gnu=-DIBMRS -DAIX -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -O2 +COPTIONSZlib_aix_gnu=-DHAVE_STDARG_H -DHAVE_UNISTD_H +COPTIONSld_aix_gnu=-L../lib +FOPTIONS_aix_gnu= +FOPTIONSld_aix_gnu=-L../lib +CURSESLIB_aix_gnu=-lcurses +SYSLIBSexe_aix_gnu=-lm -lc +SYSLIBSshr_aix_gnu=-lm -lc + +CURSES_aix_gnu64=yes +CC_aix_gnu64=gcc +LD_aix_gnu64=gcc +LDOPTIONS_aix_gnu64=-shared -maix64 +PIC_aix_gnu64=-fpic +COPTIONS_aix_gnu64=-maix64 -DIBMRS -DAIX -DAIX64 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -O2 +COPTIONSZlib_aix_gnu64=-DHAVE_STDARG_H -DHAVE_UNISTD_H +COPTIONSld_aix_gnu64=-maix64 -L../lib +FOPTIONS_aix_gnu64= +FOPTIONSld_aix_gnu64=-L../lib +CURSESLIB_aix_gnu64=-lcurses +SYSLIBSexe_aix_gnu64=-lm -lc +SYSLIBSshr_aix_gnu64=-lm -lc + +#------------------------------------------------------------------------------ +# Macros for HP-UX. +# +DD64 for 64-bit mode (--LP64__ turned on) +# none for 32-bit +#------------------------------------------------------------------------------ + +SHARED_hpux=yes +FOPTIONS_hpux=-u +FOPTIONSld_hpux= +SHAREDEXT_hpux=sl +AROPTIONS_hpux=rc +RANLIB_hpux=no +FC_hpux=f77 +JNIOS_hpux=hpux +JNIEXT_hpux=sl + +CURSES_hpux_std=yes +CC_hpux_std=cc +LD_hpux_std=ld +LDOPTIONS_hpux_std=-b +PIC_hpux_std= +COPTIONS_hpux_std=-DHP -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE +COPTIONSZlib_hpux_std=-DHAVE_STDARG_H -DHAVE_UNISTD_H +COPTIONSld_hpux_std= +FOPTIONS_hpux_std= +FOPTIONSld_hpux_std= +CURSESLIB_hpux_std=-lcurses +SYSLIBSexe_hpux_std=-lm -lc +SYSLIBSshr_hpux_std= + +CURSES_hpux_opt=no +CC_hpux_opt=cc +LD_hpux_opt=ld +LDOPTIONS_hpux_opt=-b +PIC_hpux_opt=+z +COPTIONS_hpux_opt=-w -DHP -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE +COPTIONSZlib_hpux_opt=-DHAVE_STDARG_H -DHAVE_UNISTD_H +COPTIONSld_hpux_opt= +FOPTIONS_hpux_opt= +FOPTIONSld_hpux_opt= +CURSESLIB_hpux_opt=-lcurses +SYSLIBSexe_hpux_opt=-lm -lc +SYSLIBSshr_hpux_opt= + +CURSES_hpux_opt64=no +CC_hpux_opt64=cc +LD_hpux_opt64=ld +LDOPTIONS_hpux_opt64=-b +PIC_hpux_opt64=+z +COPTIONS_hpux_opt64=-w -DHP -DHP64 +DD64 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE +COPTIONSZlib_hpux_opt64=-DHAVE_STDARG_H -DHAVE_UNISTD_H +COPTIONSld_hpux_opt64=+DD64 +FOPTIONS_hpux_opt64= +FOPTIONSld_hpux_opt64= +CURSESLIB_hpux_opt64=-lcurses +SYSLIBSexe_hpux_opt64=-lm -lc +SYSLIBSshr_hpux_opt64= + +CURSES_hpux_posix=yes +CC_hpux_posix=c89 +LD_hpux_posix=ld +LDOPTIONS_hpux_posix=-b +PIC_hpux_posix=+z +COPTIONS_hpux_posix=-DHPUXposix -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE +COPTIONSZlib_hpux_posix=-DHAVE_STDARG_H -DHAVE_UNISTD_H +COPTIONSld_hpux_posix= +FOPTIONS_hpux_posix= +FOPTIONSld_hpux_posix= +CURSESLIB_hpux_posix=-lcurses +SYSLIBSexe_hpux_posix=-lm -lc +SYSLIBSshr_hpux_posix= + +CURSES_hpux_gnu=no +CC_hpux_gnu=gcc +LD_hpux_gnu=gcc +LDOPTIONS_hpux_gnu=-shared +PIC_hpux_gnu=-fpic +COPTIONS_hpux_gnu=-DHP -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -O2 +COPTIONSZlib_hpux_gnu=-DHAVE_STDARG_H -DHAVE_UNISTD_H +COPTIONSld_hpux_gnu= +FOPTIONS_hpux_gnu= +FOPTIONSld_hpux_gnu= +CURSESLIB_hpux_gnu=-lcurses +SYSLIBSexe_hpux_gnu=-lm -lc +SYSLIBSshr_hpux_gnu= + +CURSES_hpux_gnu64=no +CC_hpux_gnu64=gcc +LD_hpux_gnu64=gcc +LDOPTIONS_hpux_gnu64=-shared -mlp64 +PIC_hpux_gnu64=-fpic +COPTIONS_hpux_gnu64=-DHP -DHP64 -mlp64 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -O2 +COPTIONSZlib_hpux_gnu64=-DHAVE_STDARG_H -DHAVE_UNISTD_H +COPTIONSld_hpux_gnu64=-mlp64 +FOPTIONS_hpux_gnu64= +FOPTIONSld_hpux_gnu64= +CURSESLIB_hpux_gnu64=-lcurses +SYSLIBSexe_hpux_gnu64=-lm -lc +SYSLIBSshr_hpux_gnu64= + +#------------------------------------------------------------------------------ +# Macros for Cygwin. +#------------------------------------------------------------------------------ + +SHARED_cygwin=yes +FOPTIONS_cygwin=-w +FOPTIONSld_cygwin= +SHAREDEXT_cygwin=dll +AROPTIONS_cygwin=rc +RANLIB_cygwin=yes +FC_cygwin=gfortran +EXEEXT_cygwin=.exe +JNIOS_cygwin=cygwin +JNIEXT_cygwin=dll + +CURSES_cygwin_gnu=yes +CC_cygwin_gnu=gcc +LD_cygwin_gnu=gcc +LDOPTIONS_cygwin_gnu=-shared +PIC_cygwin_gnu= +COPTIONS_cygwin_gnu=-I/usr/include/ncurses -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -O2 -Wno-stringop-overflow +COPTIONSZlib_cygwin_gnu=-DHAVE_STDARG_H -DHAVE_UNISTD_H +COPTIONSld_cygwin_gnu= +FOPTIONS_cygwin_gnu=-fsecond-underscore +FOPTIONSld_cygwin_gnu= +CURSESLIB_cygwin_gnu=-lncursesw +SYSLIBSexe_cygwin_gnu=-lgcc +SYSLIBSshr_cygwin_gnu=-lgcc + +#------------------------------------------------------------------------------ +# Macros for MinGW. +#------------------------------------------------------------------------------ + +SHARED_mingw=yes +FOPTIONS_mingw=-w +FOPTIONSld_mingw= +SHAREDEXT_mingw=dll +AROPTIONS_mingw=rc +RANLIB_mingw=yes +FC_mingw=gfortran +EXEEXT_mingw=.exe +JNIOS_mingw=mingw +JNIEXT_mingw=dll + +CURSES_mingw_gnu=yes +CC_mingw_gnu=gcc +LD_mingw_gnu=gcc +LDOPTIONS_mingw_gnu=-shared +PIC_mingw_gnu= +COPTIONS_mingw_gnu=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -O2 -posix +COPTIONSZlib_mingw_gnu=-DHAVE_STDARG_H -DHAVE_UNISTD_H +COPTIONSld_mingw_gnu= +FOPTIONS_mingw_gnu=-fsecond-underscore +FOPTIONSld_mingw_gnu= +CURSESLIB_mingw_gnu=-lpdcurses +SYSLIBSexe_mingw_gnu=-lgcc +SYSLIBSshr_mingw_gnu=-lgcc + +#------------------------------------------------------------------------------ +# Macros for FreeBSD. +#------------------------------------------------------------------------------ + +SHARED_freebsd=yes +FOPTIONS_freebsd=-w +FOPTIONSld_freebsd= +SHAREDEXT_freebsd=so +AROPTIONS_freebsd=rc +RANLIB_freebsd=yes +FC_freebsd=f77 +JNIOS_freebsd=freebsd +JNIEXT_freebsd=so + +CURSES_freebsd_gnu=yes +CC_freebsd_gnu=gcc +LD_freebsd_gnu=gcc +LDOPTIONS_freebsd_gnu=-shared +PIC_freebsd_gnu=-fPIC +COPTIONS_freebsd_gnu=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DMALLOC_CHECK_=0 +COPTIONSZlib_freebsd_gnu=-DHAVE_STDARG_H -DHAVE_UNISTD_H +COPTIONSld_freebsd_gnu= +FOPTIONS_freebsd_gnu= +FOPTIONSld_freebsd_gnu= +CURSESLIB_freebsd_gnu=-lncurses +SYSLIBSexe_freebsd_gnu=-lm -lc +SYSLIBSshr_freebsd_gnu=-lm -lc + +#------------------------------------------------------------------------------ +# Miscellaneous Macros. +#------------------------------------------------------------------------------ + +AND.yes.yes=yes +AND.yes.no=no +AND.no.yes=no +AND.no.no=no + +SUPPORTED.yes=supported +SUPPORTED.no=not supported + +#------------------------------------------------------------------------------ +# Compile/link entire distribution. +#------------------------------------------------------------------------------ + +all.help: + @if `type -p more > /dev/null 2>&1` ; then \ + more Help.all ; \ + else \ + less Help.all ; \ + fi + +all: all.$(OS).$(ENV) + +all..: + echo "Missing OS and ENV variables." + +all.linux.gnu: all.build +all.linux.gnu32: all.build +all.linux.gnu64: all.build +all.linux.intel: note1.intel all.build +all.solaris.sparc: note1.noCC all.build +all.solaris.sparc64: note1.noCC all.build +all.solaris.gnu: all.build +all.solaris.gnu64: all.build +all.solaris.gnu64i: all.build +all.solaris.x86: all.build +all.solaris.x64: all.build +all.osf.dec: all.build +all.osf.gnu: all.build +all.cygwin.gnu: all.build +all.mingw.gnu: all.build +all.freebsd.gnu: all.build +all.macosx.gnu32: all.build +all.macosx.gnu: all.build +all.macosx.ppc: all.build +all.macosx.ppc64: all.build +all.macosx.i386: + @if [ ${XCODEVERSION2} -gt 9 ] ; then \ + $(MAKE) note1.macx.i386 ; \ + else \ + $(MAKE) all.build ; \ + fi +all.macosx.x86_64: all.build +all.macosx.arm: all.build +all.macosx.arm64: all.build +all.macosx.arm32: all.build + +all.build: + @cd $(LIBsrcZlibDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"PIC=$(PIC_$(OS)_$(ENV))" \ +"CCx=$(CC_$(OS)_$(ENV))" \ +"COPTIONS=$(UCOPTIONS) $(COPTIONS_$(OS)_$(ENV)) $(COPTIONSZlib_$(OS)_$(ENV))" \ +all + @cd $(LIBsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"SHARED=$(AND.$(SHARED).$(SHARED_$(OS)))" \ +"PIC=$(PIC_$(OS)_$(ENV))" \ +"CCx=$(CC_$(OS)_$(ENV))" \ +"LDx=$(LD_$(OS)_$(ENV))" \ +"COPTIONS=$(UCOPTIONS) $(COPTIONS_$(OS)_$(ENV))" \ +"SYSLIBS=$(SYSLIBSshr_$(OS)_$(ENV))" \ +"SHAREDEXT=$(SHAREDEXT_$(OS))" \ +"LDOPTIONS=$(LDOPTIONS_$(OS)_$(ENV))" \ +"AROPTIONS=$(AROPTIONS_$(OS))" \ +"RANLIB=$(RANLIB_$(OS))" \ +"VERSION=$(VERSION)" \ +all + @cd $(TOOLSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"CURSES=$(AND.$(CURSES).$(CURSES_$(OS)_$(ENV)))" \ +"CCx=$(CC_$(OS)_$(ENV))" \ +"COPTIONS=$(COPTIONS_$(OS)_$(ENV))" \ +"COPTIONSld=$(COPTIONSld_$(OS)_$(ENV))" \ +"SYSLIBS=$(SYSLIBSexe_$(OS)_$(ENV))" \ +"CURSESLIB=$(CURSESLIB_$(OS)_$(ENV))" \ +all + @cd $(TESTSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"FORTRAN=$(FORTRAN)" \ +"FCx=$(FC_$(OS))" \ +"CCx=$(CC_$(OS)_$(ENV))" \ +"SHARED=$(AND.$(SHARED).$(SHARED_$(OS)))" \ +"FOPTIONS=$(FOPTIONS_$(OS)) $(FOPTIONS_$(OS)_$(ENV))" \ +"FOPTIONSld=$(FOPTIONSld_$(OS)) $(FOPTIONSld_$(OS)_$(ENV))" \ +"COPTIONS=$(COPTIONS_$(OS)_$(ENV))" \ +"COPTIONSld=$(COPTIONSld_$(OS)_$(ENV))" \ +"SYSLIBS=$(SYSLIBSexe_$(OS)_$(ENV))" \ +"SHAREDEXT=$(SHAREDEXT_$(OS))" \ +all + @if [ "$(JNI)" == "yes" ] ; then \ + if [ "$(JNI2)" == "yes" ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) JNIOS=$(JNIOS_$(OS)) JNIEXT=$(JNIEXT_$(OS)) JDK_HOME=$(JAVA_HOME) build.jni ; \ + else \ + echo "*** JNI is not built as JDK or jni.h is not found..." ; \ + fi \ + fi + +build.jni: + @cd $(JNIsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"SHARED=$(AND.$(SHARED).$(SHARED_$(OS)))" \ +"PIC=$(PIC_$(OS)_$(ENV))" \ +"CCx=$(CC_$(OS)_$(ENV))" \ +"LDx=$(LD_$(OS)_$(ENV))" \ +"COPTIONS=$(UCOPTIONS) $(COPTIONS_$(OS)_$(ENV))" \ +"SYSLIBS=$(SYSLIBSshr_$(OS)_$(ENV))" \ +"SHAREDEXT=$(SHAREDEXT_$(OS))" \ +"LDOPTIONS=$(LDOPTIONS_$(OS)_$(ENV))" \ +"VERSION=$(VERSION)" \ +"JAVA_HOME=$(JDK_HOME)" \ +"JNIOS=$(JNIOS)" \ +"JNIEXT=$(JNIEXT)" \ +"LDLIB=$(LDLIB)" \ +all + +#------------------------------------------------------------------------------ +# Test distribution. +#------------------------------------------------------------------------------ + +test.help: + @if `type -p more > /dev/null 2>&1` ; then \ + more Help.test ; \ + else \ + less Help.test ; \ + fi + +test: + @cd $(TESTSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) test + +#------------------------------------------------------------------------------ +# Install files. +#------------------------------------------------------------------------------ + +install.help: + @if `type -p more > /dev/null 2>&1` ; then \ + more Help.install ; \ + else \ + less Help.install ; \ + fi + +install: install.$(PART) + +install.all: install.definitions install.include install.lib \ + install.tools install.help_ notify.user copy.leapseconds + +install.definitions: create.bin copy.definitions change.definitions +install.include: create.include copy.include +install.tools: create.bin copy.tools +install.help_: create.help copy.help + +install.lib: create.lib copy.lib.a + @if [ -f $(LIBsrcDIR)/libcdf.so ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) "INSTALLDIR=$(INSTALLDIR)" install.lib.so ; \ + else \ + $(NULL) ; \ + fi + @if [ -f $(LIBsrcDIR)/libcdf.sl ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) "INSTALLDIR=$(INSTALLDIR)" install.lib.sl ; \ + else \ + $(NULL) ; \ + fi + @if [ -f $(LIBsrcDIR)/libcdf.dylib ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) "INSTALLDIR=$(INSTALLDIR)" install.lib.dylib ; \ + else \ + $(NULL) ; \ + fi + @if [ -f $(JNIsrcDIR)/libcdfNativeLibrary.so ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) "INSTALLDIR=$(INSTALLDIR)" install.lib.jnilib ; \ + else \ + $(NULL) ; \ + fi + @if [ -f $(JNIsrcDIR)/libcdfNativeLibrary.jnilib ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) "INSTALLDIR=$(INSTALLDIR)" install.lib.jnilib ; \ + else \ + $(NULL) ; \ + fi + @if [ -f $(JNIsrcDIR)/libcdfNativeLibrary.dll ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) "INSTALLDIR=$(INSTALLDIR)" install.lib.jnilib ; \ + else \ + $(NULL) ; \ + fi + @if [ -f $(JNIsrcDIR)/libcdfNativeLibrary.sl ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) "INSTALLDIR=$(INSTALLDIR)" install.lib.jnilib ; \ + else \ + $(NULL) ; \ + fi + @if [ -f $(LIBsrcDIR)/libcdf.o ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) "INSTALLDIR=$(INSTALLDIR)" install.lib.o ; \ + else \ + $(NULL) ; \ + fi + @if [ -f $(LIBsrcDIR)/libcdf.dll ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) "INSTALLDIR=$(INSTALLDIR)" install.lib.dll ; \ + else \ + $(NULL) ; \ + fi + +install.lib.so: create.lib copy.lib.so +install.lib.sl: create.lib copy.lib.sl +# install.lib.dylib: create.lib create.maclib copy.lib.dylib +install.lib.dylib: create.lib copy.lib.dylib +install.lib.jnilib: create.lib copy.lib.jnilib +install.lib.jnilib2: create.lib2 copy.lib.jnilib +install.lib.o: create.lib copy.lib.o +install.lib.dll: create.lib copy.lib.dll + +create.include: + @if [ ! -d $(INSTALLDIR)/include ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) "TARGET=$(INSTALLDIR)/include" create.dir ; \ + else \ + $(NULL) ; \ + fi + +create.bin: + @if [ ! -d $(INSTALLDIR)/bin ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) "TARGET=$(INSTALLDIR)/bin" create.dir ; \ + else \ + $(NULL) ; \ + fi + +create.lib: + @if [ ! -d $(INSTALLDIR)/lib ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) "TARGET=$(INSTALLDIR)/lib" create.dir ; \ + else \ + $(NULL) ; \ + fi + @if [ $(MACVERSION) -gt 0 ] ; then \ + if [ ! -d $(MYHOME)/lib ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) "TARGET=$(MYHOME)/lib" create.dir ; \ + else \ + $(NULL) ; \ + fi \ + else \ + $(NULL) ; \ + fi + +create.lib2: + @if [ $(MACVERSION) -gt 0 ] ; then \ + if [ ! -d $(MYHOME)/Library/Java/Extensions ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) "TARGET=$(MYHOME)/Library/Java/Extensions" create.dir ; \ + else \ + $(NULL) ; \ + fi \ + else \ + $(NULL) ; \ + fi + +create.help: + @if [ ! -d $(INSTALLDIR)/lib ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) "TARGET=$(INSTALLDIR)/lib" create.dir ; \ + else \ + $(NULL) ; \ + fi + @if [ ! -d $(INSTALLDIR)/lib/cdf ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) "TARGET=$(INSTALLDIR)/lib/cdf" create.dir ; \ + else \ + $(NULL) ; \ + fi + @if [ ! -d $(INSTALLDIR)/lib/cdf/help ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) "TARGET=$(INSTALLDIR)/lib/cdf/help" create.dir ; \ + else \ + $(NULL) ; \ + fi + +change.definitions: + @if [ $(INSTALLDIR) = "." ] ; then \ + $(SHELL) ./modify_definition_files.sh `pwd` ; \ + else \ + $(SHELL) ./modify_definition_files.sh $(INSTALLDIR) ; \ + fi + +copy.leapseconds: + @if [ $(INSTALLDIR) != "." ] ; then \ + cp ./CDFLeapSeconds.txt $(INSTALLDIR) ; \ + fi + +copy.definitions: + @echo cp $(DEFSsrcDIR)/definitions.C $(INSTALLDIR)/bin + cp $(DEFSsrcDIR)/definitions.C $(INSTALLDIR)/bin + @echo cp $(DEFSsrcDIR)/definitions.K $(INSTALLDIR)/bin + cp $(DEFSsrcDIR)/definitions.K $(INSTALLDIR)/bin + @echo cp $(DEFSsrcDIR)/definitions.B $(INSTALLDIR)/bin + cp $(DEFSsrcDIR)/definitions.B $(INSTALLDIR)/bin + +copy.include: + @echo cp $(INCsrcDIR)/cdf.h $(INSTALLDIR)/include + cp $(INCsrcDIR)/cdf.h $(INSTALLDIR)/include + @echo cp $(INCsrcDIR)/cdf.inc $(INSTALLDIR)/include + cp $(INCsrcDIR)/cdf.inc $(INSTALLDIR)/include + @echo cp $(INCsrcDIR)/cdflib.h $(INSTALLDIR)/include + cp $(INCsrcDIR)/cdflib.h $(INSTALLDIR)/include + @echo cp $(INCsrcDIR)/cdflib64.h $(INSTALLDIR)/include + cp $(INCsrcDIR)/cdflib64.h $(INSTALLDIR)/include + @echo cp $(INCsrcDIR)/cdfdist.h $(INSTALLDIR)/include + cp $(INCsrcDIR)/cdfdist.h $(INSTALLDIR)/include + @echo cp $(INCsrcDIR)/cdfconfig.h $(INSTALLDIR)/include + cp $(INCsrcDIR)/cdfconfig.h $(INSTALLDIR)/include + @echo cp $(INCsrcDIR)/cdftools.h $(INSTALLDIR)/include + cp $(INCsrcDIR)/cdftools.h $(INSTALLDIR)/include + +copy.lib.so: + @echo cp $(LIBsrcDIR)/libcdf.so $(INSTALLDIR)/lib + cp $(LIBsrcDIR)/libcdf.so $(INSTALLDIR)/lib/libcdf.$(VERSION).so + rm -f $(INSTALLDIR)/lib/libcdf.so + cd $(INSTALLDIR)/lib && ln -s libcdf.$(VERSION).so libcdf.so + +copy.lib.sl: + @echo cp $(LIBsrcDIR)/libcdf.sl $(INSTALLDIR)/lib + cp $(LIBsrcDIR)/libcdf.sl $(INSTALLDIR)/lib + cp $(LIBsrcDIR)/libcdf.sl $(INSTALLDIR)/lib/libcdf.$(VERSION).sl + rm -f $(INSTALLDIR)/lib/libcdf.sl + cd $(INSTALLDIR)/lib && ln -s libcdf.$(VERSION).sl libcdf.sl + +copy.lib.dylib: + @echo cp $(LIBsrcDIR)/libcdf.dylib $(INSTALLDIR)/lib + cp $(LIBsrcDIR)/libcdf.dylib $(INSTALLDIR)/lib + cp $(LIBsrcDIR)/libcdf.dylib $(INSTALLDIR)/lib/libcdf.$(VERSION).dylib + rm -f $(INSTALLDIR)/lib/libcdf.dylib + cd $(INSTALLDIR)/lib && ln -s libcdf.$(VERSION).dylib libcdf.dylib + @if [ $(MACVERSION) -gt 0 ]; then \ + mkdir -p ${MYHOME}/lib ; \ + cp $(LIBsrcDIR)/libcdf.dylib $(MYHOME)/lib/libcdf.$(VERSION).dylib ; \ + rm -f $(MYHOME)/lib/libcdf.dylib ; \ + cd $(MYHOME)/lib && ln -s libcdf.$(VERSION).dylib libcdf.dylib ; \ + fi + +copy.lib.jnilib: + @if [ -f $(JNIsrcDIR)/libcdfNativeLibrary.so ] ; then \ + echo cp $(JNIsrcDIR)/libcdfNativeLibrary.so $(INSTALLDIR)/lib/libcdfNativeLibrary.$(VERSION).so ; \ + cp $(JNIsrcDIR)/libcdfNativeLibrary.so $(INSTALLDIR)/lib/libcdfNativeLibrary.$(VERSION).so ; \ + rm -f $(INSTALLDIR)/lib/libcdfNativeLibrary.so ; \ + cd $(INSTALLDIR)/lib && ln -s libcdfNativeLibrary.$(VERSION).so libcdfNativeLibrary.so ; \ + fi + @if [ -f $(JNIsrcDIR)/libcdfNativeLibrary.dll ] ; then \ + echo cp $(JNIsrcDIR)/libcdfNativeLibrary.dll $(INSTALLDIR)/lib/libcdfNativeLibrary.$(VERSION).dll ; \ + cp $(JNIsrcDIR)/libcdfNativeLibrary.dll $(INSTALLDIR)/lib/libcdfNativeLibrary.$(VERSION).dll ; \ + rm -f $(INSTALLDIR)/lib/libcdfNativeLibrary.dll ; \ + cd $(INSTALLDIR)/lib && ln -s libcdfNativeLibrary.$(VERSION).dll libcdfNativeLibrary.dll ; \ + fi + @if [ -f $(JNIsrcDIR)/libcdfNativeLibrary.jnilib ] ; then \ + echo cp $(JNIsrcDIR)/libcdfNativeLibrary.jnilib $(INSTALLDIR)/lib/libcdfNativeLibrary.$(VERSION).jnilib ; \ + cp $(JNIsrcDIR)/libcdfNativeLibrary.jnilib $(INSTALLDIR)/lib/libcdfNativeLibrary.$(VERSION).jnilib ; \ + mkdir -p $(MYHOME)/lib ; \ + echo cp $(JNIsrcDIR)/libcdfNativeLibrary.jnilib $(MYHOME)/lib/libcdfNativeLibrary.$(VERSION).jnilib ; \ + cp $(JNIsrcDIR)/libcdfNativeLibrary.jnilib $(MYHOME)/lib/libcdfNativeLibrary.$(VERSION).jnilib ; \ + mkdir -p $(MYHOME)/Library/Java/Extensions ; \ + echo cp $(JNIsrcDIR)/libcdfNativeLibrary.jnilib $(MYHOME)/Library/Java/Extensions/libcdfNativeLibrary.$(VERSION).jnilib ; \ + cp $(JNIsrcDIR)/libcdfNativeLibrary.jnilib $(MYHOME)/Library/Java/Extensions/libcdfNativeLibrary.$(VERSION).jnilib ; \ + rm -f $(INSTALLDIR)/lib/libcdfNativeLibrary.jnilib ; \ + cd $(INSTALLDIR)/lib && ln -s libcdfNativeLibrary.$(VERSION).jnilib libcdfNativeLibrary.jnilib ; \ + rm -f $(MYHOME)/lib/libcdfNativeLibrary.jnilib ; \ + cd $(MYHOME)/lib && ln -s libcdfNativeLibrary.$(VERSION).jnilib libcdfNativeLibrary.jnilib ; \ + rm -f $(MYHOME)/Library/Java/Extensions/libcdfNativeLibrary.jnilib ; \ + cd $(MYHOME)/Library/Java/Extensions && ln -s libcdfNativeLibrary.$(VERSION).jnilib libcdfNativeLibrary.jnilib ; \ + fi + @if [ -f $(JNIsrcDIR)/libcdfNativeLibrary.sl ] ; then \ + echo cp $(JNIsrcDIR)/libcdfNativeLibrary.sl $(INSTALLDIR)/lib/libcdfNativeLibrary.$(VERSION).sl ; \ + cp $(JNIsrcDIR)/libcdfNativeLibrary.sl $(INSTALLDIR)/lib/libcdfNativeLibrary.$(VERSION).sl ; \ + rm -f $(INSTALLDIR)/lib/libcdfNativeLibrary.sl ; \ + cd $(INSTALLDIR)/lib && ln -s libcdfNativeLibrary.$(VERSION).sl libcdfNativeLibrary.sl ; \ + fi + +copy.lib.o: + @echo cp $(LIBsrcDIR)/libcdf.o $(INSTALLDIR)/lib + cp $(LIBsrcDIR)/libcdf.o $(INSTALLDIR)/lib + +copy.lib.dll: + @echo cp $(LIBsrcDIR)/libcdf.dll $(INSTALLDIR)/lib + cp $(LIBsrcDIR)/libcdf.dll $(INSTALLDIR)/lib + cp $(LIBsrcDIR)/libcdf.dll $(INSTALLDIR)/lib/libcdf.$(VERSION).dll + rm -f $(INSTALLDIR)/lib/libcdf.dll + cd $(INSTALLDIR)/lib && ln -s libcdf.$(VERSION).dll libcdf.dll + +copy.lib.a: + @echo cp $(LIBsrcDIR)/libcdf.a $(INSTALLDIR)/lib + cp $(LIBsrcDIR)/libcdf.a $(INSTALLDIR)/lib + @if [ $(MACVERSION) -gt 0 ]; then \ + mkdir -p ${MYHOME}/lib ; \ + cp $(LIBsrcDIR)/libcdf.a $(MYHOME)/lib ; \ + fi + + +copy.tools: + @if [ -f $(TOOLSsrcDIR)/cdfedit.exe ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ + "SOURCE=$(TOOLSsrcDIR)/cdfedit.exe" \ + "DESTINATION=$(INSTALLDIR)/bin/cdfedit.exe" \ + copy.file ; \ + elif [ -f $(TOOLSsrcDIR)/cdfedit ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ + "SOURCE=$(TOOLSsrcDIR)/cdfedit" \ + "DESTINATION=$(INSTALLDIR)/bin/cdfedit" \ + copy.file ; \ + else \ + $(NULL) ; \ + fi + @if [ -f $(TOOLSsrcDIR)/cdfxp.exe ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ + "SOURCE=$(TOOLSsrcDIR)/cdfxp.exe" \ + "DESTINATION=$(INSTALLDIR)/bin/cdfexport.exe" \ + copy.file ; \ + elif [ -f $(TOOLSsrcDIR)/cdfxp ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ + "SOURCE=$(TOOLSsrcDIR)/cdfxp" \ + "DESTINATION=$(INSTALLDIR)/bin/cdfexport" \ + copy.file ; \ + else \ + $(NULL) ; \ + fi + @if [ -f $(TOOLSsrcDIR)/cdfcvt.exe ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ + "SOURCE=$(TOOLSsrcDIR)/cdfcvt.exe" \ + "DESTINATION=$(INSTALLDIR)/bin/cdfconvert.exe" \ + copy.file ; \ + elif [ -f $(TOOLSsrcDIR)/cdfcvt ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ + "SOURCE=$(TOOLSsrcDIR)/cdfcvt" \ + "DESTINATION=$(INSTALLDIR)/bin/cdfconvert" \ + copy.file ; \ + else \ + $(NULL) ; \ + fi + @if [ -f $(TOOLSsrcDIR)/skt2cdf.exe ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ + "SOURCE=$(TOOLSsrcDIR)/skt2cdf.exe" \ + "DESTINATION=$(INSTALLDIR)/bin/skeletoncdf.exe" \ + copy.file ; \ + elif [ -f $(TOOLSsrcDIR)/skt2cdf ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ + "SOURCE=$(TOOLSsrcDIR)/skt2cdf" \ + "DESTINATION=$(INSTALLDIR)/bin/skeletoncdf" \ + copy.file ; \ + else \ + $(NULL) ; \ + fi + @if [ -f $(TOOLSsrcDIR)/cdf2skt.exe ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ + "SOURCE=$(TOOLSsrcDIR)/cdf2skt.exe" \ + "DESTINATION=$(INSTALLDIR)/bin/skeletontable.exe" \ + copy.file ; \ + elif [ -f $(TOOLSsrcDIR)/cdf2skt ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ + "SOURCE=$(TOOLSsrcDIR)/cdf2skt" \ + "DESTINATION=$(INSTALLDIR)/bin/skeletontable" \ + copy.file ; \ + else \ + $(NULL) ; \ + fi + @if [ -f $(TOOLSsrcDIR)/cdfinq.exe ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ + "SOURCE=$(TOOLSsrcDIR)/cdfinq.exe" \ + "DESTINATION=$(INSTALLDIR)/bin/cdfinquire.exe" \ + copy.file ; \ + elif [ -f $(TOOLSsrcDIR)/cdfinq ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ + "SOURCE=$(TOOLSsrcDIR)/cdfinq" \ + "DESTINATION=$(INSTALLDIR)/bin/cdfinquire" \ + copy.file ; \ + else \ + $(NULL) ; \ + fi + @if [ -f $(TOOLSsrcDIR)/cdfstats.exe ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ + "SOURCE=$(TOOLSsrcDIR)/cdfstats.exe" \ + "DESTINATION=$(INSTALLDIR)/bin/cdfstats.exe" \ + copy.file ; \ + elif [ -f $(TOOLSsrcDIR)/cdfstats ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ + "SOURCE=$(TOOLSsrcDIR)/cdfstats" \ + "DESTINATION=$(INSTALLDIR)/bin/cdfstats" \ + copy.file ; \ + else \ + $(NULL) ; \ + fi + @if [ -f $(TOOLSsrcDIR)/cdfcmp.exe ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ + "SOURCE=$(TOOLSsrcDIR)/cdfcmp.exe" \ + "DESTINATION=$(INSTALLDIR)/bin/cdfcompare.exe" \ + copy.file ; \ + elif [ -f $(TOOLSsrcDIR)/cdfcmp ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ + "SOURCE=$(TOOLSsrcDIR)/cdfcmp" \ + "DESTINATION=$(INSTALLDIR)/bin/cdfcompare" \ + copy.file ; \ + else \ + $(NULL) ; \ + fi + @if [ -f $(TOOLSsrcDIR)/cdfdump.exe ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ + "SOURCE=$(TOOLSsrcDIR)/cdfdump.exe" \ + "DESTINATION=$(INSTALLDIR)/bin/cdfdump.exe" \ + copy.file ; \ + elif [ -f $(TOOLSsrcDIR)/cdfdump ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ + "SOURCE=$(TOOLSsrcDIR)/cdfdump" \ + "DESTINATION=$(INSTALLDIR)/bin/cdfdump" \ + copy.file ; \ + else \ + $(NULL) ; \ + fi + @if [ -f $(TOOLSsrcDIR)/cdfirsdump.exe ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ + "SOURCE=$(TOOLSsrcDIR)/cdfirsdump.exe" \ + "DESTINATION=$(INSTALLDIR)/bin/cdfirsdump.exe" \ + copy.file ; \ + elif [ -f $(TOOLSsrcDIR)/cdfirsdump ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ + "SOURCE=$(TOOLSsrcDIR)/cdfirsdump" \ + "DESTINATION=$(INSTALLDIR)/bin/cdfirsdump" \ + copy.file ; \ + else \ + $(NULL) ; \ + fi + @if [ -f $(TOOLSsrcDIR)/cdfmerge.exe ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ + "SOURCE=$(TOOLSsrcDIR)/cdfmerge.exe" \ + "DESTINATION=$(INSTALLDIR)/bin/cdfmerge.exe" \ + copy.file ; \ + elif [ -f $(TOOLSsrcDIR)/cdfmerge ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ + "SOURCE=$(TOOLSsrcDIR)/cdfmerge" \ + "DESTINATION=$(INSTALLDIR)/bin/cdfmerge" \ + copy.file ; \ + else \ + $(NULL) ; \ + fi + @if [ -f $(TOOLSsrcDIR)/cdfvalidate.exe ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ + "SOURCE=$(TOOLSsrcDIR)/cdfvalidate.exe" \ + "DESTINATION=$(INSTALLDIR)/bin/cdfvalidate.exe" \ + copy.file ; \ + elif [ -f $(TOOLSsrcDIR)/cdfvalidate ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ + "SOURCE=$(TOOLSsrcDIR)/cdfvalidate" \ + "DESTINATION=$(INSTALLDIR)/bin/cdfvalidate" \ + copy.file ; \ + else \ + $(NULL) ; \ + fi + @if [ -f $(TOOLSsrcDIR)/cdfleapsecondsinfo.exe ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ + "SOURCE=$(TOOLSsrcDIR)/cdfleapsecondsinfo.exe" \ + "DESTINATION=$(INSTALLDIR)/bin/cdfleapsecondsinfo.exe" \ + copy.file ; \ + elif [ -f $(TOOLSsrcDIR)/cdfleapsecondsinfo ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ + "SOURCE=$(TOOLSsrcDIR)/cdfleapsecondsinfo" \ + "DESTINATION=$(INSTALLDIR)/bin/cdfleapsecondsinfo" \ + copy.file ; \ + else \ + $(NULL) ; \ + fi + @echo cp $(TOOLSsrcDIR)/cdfdir.unix $(INSTALLDIR)/bin/cdfdir + cp $(TOOLSsrcDIR)/cdfdir.unix $(INSTALLDIR)/bin/cdfdir + +copy.help: + @echo cp $(HELPsrcDIR)/cdfedit.olh $(INSTALLDIR)/lib/cdf/help + cp $(HELPsrcDIR)/cdfedit.olh $(INSTALLDIR)/lib/cdf/help + @echo cp $(HELPsrcDIR)/cdfeditj.olh $(INSTALLDIR)/lib/cdf/help + cp $(HELPsrcDIR)/cdfeditj.olh $(INSTALLDIR)/lib/cdf/help + @echo cp $(HELPsrcDIR)/cdfedit.ilh $(INSTALLDIR)/lib/cdf/help + cp $(HELPsrcDIR)/cdfedit.ilh $(INSTALLDIR)/lib/cdf/help + @echo cp $(HELPsrcDIR)/cdfbrow.ilh $(INSTALLDIR)/lib/cdf/help + cp $(HELPsrcDIR)/cdfbrow.ilh $(INSTALLDIR)/lib/cdf/help + @echo cp $(HELPsrcDIR)/cdfxp.ilh $(INSTALLDIR)/lib/cdf/help + cp $(HELPsrcDIR)/cdfxp.ilh $(INSTALLDIR)/lib/cdf/help + @echo cp $(HELPsrcDIR)/cdfcvt.olh $(INSTALLDIR)/lib/cdf/help + cp $(HELPsrcDIR)/cdfcvt.olh $(INSTALLDIR)/lib/cdf/help + @echo cp $(HELPsrcDIR)/cdfcvtj.olh $(INSTALLDIR)/lib/cdf/help + cp $(HELPsrcDIR)/cdfcvtj.olh $(INSTALLDIR)/lib/cdf/help + @echo cp $(HELPsrcDIR)/cdfcmp.olh $(INSTALLDIR)/lib/cdf/help + cp $(HELPsrcDIR)/cdfcmp.olh $(INSTALLDIR)/lib/cdf/help + @echo cp $(HELPsrcDIR)/cdfcmpj.olh $(INSTALLDIR)/lib/cdf/help + cp $(HELPsrcDIR)/cdfcmpj.olh $(INSTALLDIR)/lib/cdf/help + @echo cp $(HELPsrcDIR)/cdf2skt.olh $(INSTALLDIR)/lib/cdf/help + cp $(HELPsrcDIR)/cdf2skt.olh $(INSTALLDIR)/lib/cdf/help + @echo cp $(HELPsrcDIR)/cdf2sktj.olh $(INSTALLDIR)/lib/cdf/help + cp $(HELPsrcDIR)/cdf2sktj.olh $(INSTALLDIR)/lib/cdf/help + @echo cp $(HELPsrcDIR)/skt2cdf.olh $(INSTALLDIR)/lib/cdf/help + cp $(HELPsrcDIR)/skt2cdf.olh $(INSTALLDIR)/lib/cdf/help + @echo cp $(HELPsrcDIR)/skt2cdfj.olh $(INSTALLDIR)/lib/cdf/help + cp $(HELPsrcDIR)/skt2cdfj.olh $(INSTALLDIR)/lib/cdf/help + @echo cp $(HELPsrcDIR)/cdfstats.olh $(INSTALLDIR)/lib/cdf/help + cp $(HELPsrcDIR)/cdfstats.olh $(INSTALLDIR)/lib/cdf/help + @echo cp $(HELPsrcDIR)/cdfstatsj.olh $(INSTALLDIR)/lib/cdf/help + cp $(HELPsrcDIR)/cdfstatsj.olh $(INSTALLDIR)/lib/cdf/help + @echo cp $(HELPsrcDIR)/cdfdump.olh $(INSTALLDIR)/lib/cdf/help + cp $(HELPsrcDIR)/cdfdump.olh $(INSTALLDIR)/lib/cdf/help + @echo cp $(HELPsrcDIR)/cdfdumpj.olh $(INSTALLDIR)/lib/cdf/help + cp $(HELPsrcDIR)/cdfdumpj.olh $(INSTALLDIR)/lib/cdf/help + @echo cp $(HELPsrcDIR)/cdfirsdump.olh $(INSTALLDIR)/lib/cdf/help + cp $(HELPsrcDIR)/cdfirsdump.olh $(INSTALLDIR)/lib/cdf/help + @echo cp $(HELPsrcDIR)/cdfirsdumpj.olh $(INSTALLDIR)/lib/cdf/help + cp $(HELPsrcDIR)/cdfirsdumpj.olh $(INSTALLDIR)/lib/cdf/help + @echo cp $(HELPsrcDIR)/cdfinq.olh $(INSTALLDIR)/lib/cdf/help + cp $(HELPsrcDIR)/cdfinq.olh $(INSTALLDIR)/lib/cdf/help + @echo cp $(HELPsrcDIR)/cdfinqj.olh $(INSTALLDIR)/lib/cdf/help + cp $(HELPsrcDIR)/cdfinqj.olh $(INSTALLDIR)/lib/cdf/help + @echo cp $(HELPsrcDIR)/cdfdirj.olh $(INSTALLDIR)/lib/cdf/help + cp $(HELPsrcDIR)/cdfdirj.olh $(INSTALLDIR)/lib/cdf/help + @echo cp $(HELPsrcDIR)/cdfmerge.olh $(INSTALLDIR)/lib/cdf/help + cp $(HELPsrcDIR)/cdfmerge.olh $(INSTALLDIR)/lib/cdf/help + @echo cp $(HELPsrcDIR)/cdfmergej.olh $(INSTALLDIR)/lib/cdf/help + cp $(HELPsrcDIR)/cdfmergej.olh $(INSTALLDIR)/lib/cdf/help + @echo cp $(HELPsrcDIR)/cdfvalidate.olh $(INSTALLDIR)/lib/cdf/help + cp $(HELPsrcDIR)/cdfvalidate.olh $(INSTALLDIR)/lib/cdf/help + @echo cp $(HELPsrcDIR)/cdfvalidatej.olh $(INSTALLDIR)/lib/cdf/help + cp $(HELPsrcDIR)/cdfvalidatej.olh $(INSTALLDIR)/lib/cdf/help + @echo cp $(HELPsrcDIR)/cdfleaptableinfo.olh $(INSTALLDIR)/lib/cdf/help + cp $(HELPsrcDIR)/cdfleaptableinfo.olh $(INSTALLDIR)/lib/cdf/help + @echo cp $(HELPsrcDIR)/cdfleaptableinfoj.olh $(INSTALLDIR)/lib/cdf/help + cp $(HELPsrcDIR)/cdfleaptableinfoj.olh $(INSTALLDIR)/lib/cdf/help + +create.dir: + @echo mkdir -p $(TARGET) + mkdir -p $(TARGET) + +copy.file: + @echo cp $(SOURCE) $(DESTINATION) + cp $(SOURCE) $(DESTINATION) + chmod +x $(DESTINATION) + +notify.user: + @echo + @echo Installation completed! + @echo + @echo "**********" + @echo "* NOTE *" + @echo "**********" + @echo "If you want to use any of the CDF command-line utilitites (e.g. cdfedit, " + @echo "cdfexport, etc.), we strongly encourage you to set the CDF environment " + @echo "variables defined in the CDF definition files. Once the environment variables" + @echo "defined, you can invoke the CDF utility of interest just by typing the utility" + @echo "name. Otherwise, you'll have to specify the full path of the utility." + @echo + @echo If you use TCSH or CSH, run the following command: + @echo + @if [ $(INSTALLDIR) = "." ] ; then \ + echo " source `pwd`/bin/definitions.C" ; \ + else \ + echo " source $(INSTALLDIR)/bin/definitions.C" ; \ + fi + @echo + @echo + @echo If you use BASH/BSH and ZSH, run the following command: + @echo + @if [ $(INSTALLDIR) = "." ] ; then \ + echo " . `pwd`/bin/definitions.B" ; \ + else \ + echo " . $(INSTALLDIR)/bin/definitions.B" ; \ + fi + @echo + @echo + @echo If you use KSH, run the following command: + @echo + @if [ $(INSTALLDIR) = "." ] ; then \ + echo " . `pwd`/bin/definitions.K" ; \ + else \ + echo " . $(INSTALLDIR)/bin/definitions.K" ; \ + fi + @echo + @echo + @echo If you use ZSH, run the following command: + @echo + @if [ $(INSTALLDIR) = "." ] ; then \ + echo " . `pwd`/bin/definitions.Z" ; \ + else \ + echo " . $(INSTALLDIR)/bin/definitions.Z" ; \ + fi + @echo + +ranlib.file: + @echo $(RANLIB) $(TARGET) + $(RANLIB) $(TARGET) + +#------------------------------------------------------------------------------ +# Clean/purge. +#------------------------------------------------------------------------------ + +clean: + @-rm -f core + @-rm -f samples/core + @cd $(LIBsrcZlibDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) clean + @cd $(LIBsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) clean + @cd $(TOOLSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) clean + @cd $(TESTSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) clean + @if [ -f $(JNIsrcDIR) ] ; then \ + @cd $(JNIsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) clean ; \ + fi + +purge: + @-rm -f *~ + @-rm -f *# + @-rm -f samples/*~ + @-rm -f samples/*# + @-rm -f $(HELPsrcDIR)/*~ + @-rm -f $(HELPsrcDIR)/*# + @-rm -f $(DEFSsrcDIR)/*~ + @-rm -f $(DEFSsrcDIR)/*# + @-rm -f $(INCsrcDIR)/*~ + @-rm -f $(INCsrcDIR)/*# + @cd $(LIBsrcZlibDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) purge + @cd $(LIBsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) purge + @cd $(TOOLSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) purge + @cd $(TESTSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) purge + @if [ -f $(JNIsrcDIR) ] ; then \ + @cd $(JNIsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) purge ; \ + fi + +#------------------------------------------------------------------------------ +# Ultrix. +#------------------------------------------------------------------------------ + +all.ultrix.risc: note1.all.ultrix.risc.build +all.ultrix.gnu: note1.1st all.ultrix.gnu.build + +all.ultrix.risc.build: + @cd $(LIBsrcZlibDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"PIC=$(PIC_ultrix_risc)" \ +"CCx=$(CC_ultrix_risc)" \ +"COPTIONS=$(COPTIONS_ultrix_risc)" \ +all + @cd $(LIBsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"SHARED=$(SHARED_ultrix)" \ +"PIC=$(PIC_ultrix_risc)" \ +"CCx=$(CC_ultrix_risc)" \ +"LDx=$(LD_ultrix_risc)" \ +"COPTIONS=$(COPTIONS_ultrix_risc)" \ +"SYSLIBS=$(SYSLIBSshr_ultrix_risc)" \ +"SHAREDEXT=$(SHAREDEXT_ultrix)" \ +"LDOPTIONS=$(LDOPTIONS_ultrix_risc)" \ +"AROPTIONS=$(AROPTIONS_ultrix)" \ +"RANLIB=$(RANLIB_ultrix)" \ +all + @cd $(TOOLSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"CURSES=$(AND.$(CURSES).$(CURSES_$(OS)_$(ENV)))" \ +"CCx=$(CC_ultrix_risc)" \ +"COPTIONS=$(COPTIONS_ultrix_risc)" \ +"COPTIONSld=$(COPTIONSld_ultrix_risc)" \ +"SYSLIBS=$(SYSLIBSexe_ultrix_risc)" \ +"CURSESLIB=$(CURSESLIB_ultrix_risc)" \ +all + @cd $(TESTSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"FORTRAN=$(FORTRAN)" \ +"FCx=$(FC_ultrix)" \ +"CCx=$(CC_ultrix_risc)" \ +"SHARED=$(SHARED_ultrix)" \ +"FOPTIONS=$(FOPTIONS_ultrix)" \ +"FOPTIONSld=$(FOPTIONSld_ultrix)" \ +"COPTIONS=$(COPTIONS_ultrix_risc)" \ +"COPTIONSld=$(COPTIONSld_ultrix_risc)" \ +"SYSLIBS=$(SYSLIBSexe_ultrix_risc)" \ +"SHAREDEXT=$(SHAREDEXT_ultrix)" \ +all + +all.ultrix.gnu.build: + @cd $(LIBsrcZlibDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"PIC=$(PIC_ultrix_gnu)" \ +"CCx=$(CC_ultrix_gnu)" \ +"COPTIONS=$(COPTIONS_ultrix_gnu)" \ +all + @cd $(LIBsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"SHARED=$(SHARED_ultrix)" \ +"PIC=$(PIC_ultrix_gnu)" \ +"CCx=$(CC_ultrix_gnu)" \ +"LDx=$(LD_ultrix_gnu)" \ +"COPTIONS=$(COPTIONS_ultrix_gnu)" \ +"SYSLIBS=$(SYSLIBSshr_ultrix_gnu)" \ +"SHAREDEXT=$(SHAREDEXT_ultrix)" \ +"LDOPTIONS=$(LDOPTIONS_ultrix_gnu)" \ +"AROPTIONS=$(AROPTIONS_ultrix)" \ +"RANLIB=$(RANLIB_ultrix)" \ +all + @cd $(TOOLSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"CURSES=$(AND.$(CURSES).$(CURSES_$(OS)_$(ENV)))" \ +"CCx=$(CC_ultrix_gnu)" \ +"COPTIONS=$(COPTIONS_ultrix_gnu)" \ +"COPTIONSld=$(COPTIONSld_ultrix_gnu)" \ +"SYSLIBS=$(SYSLIBSexe_ultrix_gnu)" \ +"CURSESLIB=$(CURSESLIB_ultrix_gnu)" \ +all + @cd $(TESTSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"FORTRAN=$(FORTRAN)" \ +"FCx=$(FC_ultrix)" \ +"CCx=$(CC_ultrix_gnu)" \ +"SHARED=$(SHARED_ultrix)" \ +"FOPTIONS=$(FOPTIONS_ultrix)" \ +"FOPTIONSld=$(FOPTIONSld_ultrix)" \ +"COPTIONS=$(COPTIONS_ultrix_gnu)" \ +"COPTIONSld=$(COPTIONSld_ultrix_gnu)" \ +"SYSLIBS=$(SYSLIBSexe_ultrix_gnu)" \ +"SHAREDEXT=$(SHAREDEXT_ultrix)" \ +all + +#------------------------------------------------------------------------------ +# HP-UX. +#------------------------------------------------------------------------------ + +all.hpux.gnu: all.hpux.gnu.build +all.hpux.opt: all.hpux.opt.build +all.hpux.gnu64: all.hpux.gnu64.build +all.hpux.opt64: all.hpux.opt64.build + +all.hpux.std.build: + @cd $(LIBsrcZlibDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"PIC=$(PIC_hpux_std)" \ +"CCx=$(CC_hpux_std)" \ +"COPTIONS=$(COPTIONS_hpux_std) $(COPTIONSZlib_hpux_std)" \ +all + @cd $(LIBsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"SHARED=$(SHARED_hpux_std)" \ +"PIC=$(PIC_hpux_std)" \ +"CCx=$(CC_hpux_std)" \ +"LDx=$(LD_hpux_std)" \ +"COPTIONS=$(COPTIONS_hpux_std)" \ +"SYSLIBS=$(SYSLIBSshr_hpux_std)" \ +"SHAREDEXT=$(SHAREDEXT_hpux)" \ +"LDOPTIONS=$(LDOPTIONS_hpux_std)" \ +"AROPTIONS=$(AROPTIONS_hpux)" \ +"RANLIB=$(RANLIB_hpux)" \ +all + @cd $(TOOLSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"CURSES=$(AND.$(CURSES).$(CURSES_$(OS)_$(ENV)))" \ +"CCx=$(CC_hpux_std)" \ +"COPTIONS=$(COPTIONS_hpux_std)" \ +"COPTIONSld=$(COPTIONSld_hpux_std)" \ +"SYSLIBS=$(SYSLIBSexe_hpux_std)" \ +"CURSESLIB=$(CURSESLIB_hpux_std)" \ +all + @cd $(TESTSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"FORTRAN=$(FORTRAN)" \ +"FCx=$(FC_hpux)" \ +"CCx=$(CC_hpux_std)" \ +"SHARED=$(SHARED_hpux_std)" \ +"FOPTIONS=$(FOPTIONS_hpux)" \ +"FOPTIONSld=$(FOPTIONSld_hpux)" \ +"COPTIONS=$(COPTIONS_hpux_std)" \ +"COPTIONSld=$(COPTIONSld_hpux_std)" \ +"SYSLIBS=$(SYSLIBSexe_hpux_std)" \ +"SHAREDEXT=$(SHAREDEXT_hpux)" \ +all + +all.hpux.opt.build: + @cd $(LIBsrcZlibDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"PIC=$(PIC_hpux_opt)" \ +"CCx=$(CC_hpux_opt)" \ +"COPTIONS=$(COPTIONS_hpux_opt) $(COPTIONSZlib_hpux_opt)" \ +all + @cd $(LIBsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"SHARED=$(SHARED)" \ +"PIC=$(PIC_hpux_opt)" \ +"CCx=$(CC_hpux_opt)" \ +"LDx=$(LD_hpux_opt)" \ +"COPTIONS=$(COPTIONS_hpux_opt)" \ +"SYSLIBS=$(SYSLIBSshr_hpux_opt)" \ +"SHAREDEXT=$(SHAREDEXT_hpux)" \ +"LDOPTIONS=$(LDOPTIONS_hpux_opt)" \ +"AROPTIONS=$(AROPTIONS_hpux)" \ +"RANLIB=$(RANLIB_hpux)" \ +all + @cd $(TOOLSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"CURSES=$(AND.$(CURSES).$(CURSES_$(OS)_$(ENV)))" \ +"CCx=$(CC_hpux_opt)" \ +"COPTIONS=$(COPTIONS_hpux_opt)" \ +"COPTIONSld=$(COPTIONSld_hpux_opt)" \ +"SYSLIBS=$(SYSLIBSexe_hpux_opt)" \ +"CURSESLIB=$(CURSESLIB_hpux_opt)" \ +all + @cd $(TESTSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"FORTRAN=$(FORTRAN)" \ +"FCx=$(FC_hpux)" \ +"CCx=$(CC_hpux_opt)" \ +"SHARED=$(SHARED)" \ +"FOPTIONS=$(FOPTIONS_hpux)" \ +"FOPTIONSld=$(FOPTIONSld_hpux)" \ +"COPTIONS=$(COPTIONS_hpux_opt)" \ +"COPTIONSld=$(COPTIONSld_hpux_opt)" \ +"SYSLIBS=$(SYSLIBSexe_hpux_opt)" \ +"SHAREDEXT=$(SHAREDEXT_hpux)" \ +all + +all.hpux.opt64.build: + @cd $(LIBsrcZlibDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"PIC=$(PIC_hpux_opt64)" \ +"CCx=$(CC_hpux_opt64)" \ +"COPTIONS=$(COPTIONS_hpux_opt64) $(COPTIONSZlib_hpux_opt64)" \ +all + @cd $(LIBsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"SHARED=$(SHARED)" \ +"PIC=$(PIC_hpux_opt64)" \ +"CCx=$(CC_hpux_opt64)" \ +"LDx=$(LD_hpux_opt64)" \ +"COPTIONS=$(COPTIONS_hpux_opt64)" \ +"SYSLIBS=$(SYSLIBSshr_hpux_opt64)" \ +"SHAREDEXT=$(SHAREDEXT_hpux)" \ +"LDOPTIONS=$(LDOPTIONS_hpux_opt64)" \ +"AROPTIONS=$(AROPTIONS_hpux)" \ +"RANLIB=$(RANLIB_hpux)" \ +all + @cd $(TOOLSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"CURSES=$(AND.$(CURSES).$(CURSES_$(OS)_$(ENV)))" \ +"CCx=$(CC_hpux_opt64)" \ +"COPTIONS=$(COPTIONS_hpux_opt64)" \ +"COPTIONSld=$(COPTIONSld_hpux_opt64)" \ +"SYSLIBS=$(SYSLIBSexe_hpux_opt64)" \ +"CURSESLIB=$(CURSESLIB_hpux_opt64)" \ +all + @cd $(TESTSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"FORTRAN=$(FORTRAN)" \ +"FCx=$(FC_hpux)" \ +"CCx=$(CC_hpux_opt64)" \ +"SHARED=$(SHARED)" \ +"FOPTIONS=$(FOPTIONS_hpux)" \ +"FOPTIONSld=$(FOPTIONSld_hpux)" \ +"COPTIONS=$(COPTIONS_hpux_opt64)" \ +"COPTIONSld=$(COPTIONSld_hpux_opt64)" \ +"SYSLIBS=$(SYSLIBSexe_hpux_opt64)" \ +"SHAREDEXT=$(SHAREDEXT_hpux)" \ +all + +all.hpux.posix.build: + @cd $(LIBsrcZlibDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"PIC=$(PIC_hpux_posix)" \ +"CCx=$(CC_hpux_posix)" \ +"COPTIONS=$(COPTIONS_hpux_posix) $(COPTIONSZlib_hpux_posix)" \ +all + @cd $(LIBsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"SHARED=$(SHARED)" \ +"PIC=$(PIC_hpux_posix)" \ +"CCx=$(CC_hpux_posix)" \ +"LDx=$(LD_hpux_posix)" \ +"COPTIONS=$(COPTIONS_hpux_posix)" \ +"SYSLIBS=$(SYSLIBSshr_hpux_posix)" \ +"SHAREDEXT=$(SHAREDEXT_hpux)" \ +"LDOPTIONS=$(LDOPTIONS_hpux_posix)" \ +"AROPTIONS=$(AROPTIONS_hpux)" \ +"RANLIB=$(RANLIB_hpux)" \ +all + @cd $(TOOLSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"CURSES=$(AND.$(CURSES).$(CURSES_$(OS)_$(ENV)))" \ +"CCx=$(CC_hpux_posix)" \ +"COPTIONS=$(COPTIONS_hpux_posix)" \ +"COPTIONSld=$(COPTIONSld_hpux_posix)" \ +"SYSLIBS=$(SYSLIBSexe_hpux_posix)" \ +"CURSESLIB=$(CURSESLIB_hpux_posix)" \ +all + @cd $(TESTSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"FORTRAN=$(FORTRAN)" \ +"FCx=$(FC_hpux)" \ +"CCx=$(CC_hpux_posix)" \ +"SHARED=$(SHARED)" \ +"FOPTIONS=$(FOPTIONS_hpux)" \ +"FOPTIONSld=$(FOPTIONSld_hpux)" \ +"COPTIONS=$(COPTIONS_hpux_posix)" \ +"COPTIONSld=$(COPTIONSld_hpux_posix)" \ +"SYSLIBS=$(SYSLIBSexe_hpux_posix)" \ +"SHAREDEXT=$(SHAREDEXT_hpux)" \ +all + +all.hpux.gnu.build: + @cd $(LIBsrcZlibDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"PIC=$(PIC_hpux_gnu)" \ +"CCx=$(CC_hpux_gnu)" \ +"COPTIONS=$(COPTIONS_hpux_gnu) $(COPTIONSZlib_hpux_gnu)" \ +all + @cd $(LIBsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"SHARED=$(SHARED)" \ +"PIC=$(PIC_hpux_gnu)" \ +"CCx=$(CC_hpux_gnu)" \ +"LDx=$(LD_hpux_gnu)" \ +"COPTIONS=$(COPTIONS_hpux_gnu)" \ +"SYSLIBS=$(SYSLIBSshr_hpux_gnu)" \ +"SHAREDEXT=$(SHAREDEXT_hpux)" \ +"LDOPTIONS=$(LDOPTIONS_hpux_gnu)" \ +"AROPTIONS=$(AROPTIONS_hpux)" \ +"RANLIB=$(RANLIB_hpux)" \ +all + @cd $(TOOLSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"CURSES=$(AND.$(CURSES).$(CURSES_$(OS)_$(ENV)))" \ +"CCx=$(CC_hpux_gnu)" \ +"COPTIONS=$(COPTIONS_hpux_gnu)" \ +"COPTIONSld=$(COPTIONSld_hpux_gnu)" \ +"SYSLIBS=$(SYSLIBSexe_hpux_gnu)" \ +"CURSESLIB=$(CURSESLIB_hpux_gnu)" \ +all + @cd $(TESTSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"FORTRAN=$(FORTRAN)" \ +"FCx=$(FC_hpux)" \ +"CCx=$(CC_hpux_gnu)" \ +"SHARED=$(SHARED)" \ +"FOPTIONS=$(FOPTIONS_hpux)" \ +"FOPTIONSld=$(FOPTIONSld_hpux)" \ +"COPTIONS=$(COPTIONS_hpux_gnu)" \ +"COPTIONSld=$(COPTIONSld_hpux_gnu)" \ +"SYSLIBS=$(SYSLIBSexe_hpux_gnu)" \ +"SHAREDEXT=$(SHAREDEXT_hpux)" \ +all + +all.hpux.gnu64.build: + @cd $(LIBsrcZlibDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"PIC=$(PIC_hpux_gnu64)" \ +"CCx=$(CC_hpux_gnu64)" \ +"COPTIONS=$(COPTIONS_hpux_gnu64) $(COPTIONSZlib_hpux_gnu64)" \ +all + @cd $(LIBsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"SHARED=$(SHARED)" \ +"PIC=$(PIC_hpux_gnu64)" \ +"CCx=$(CC_hpux_gnu64)" \ +"LDx=$(LD_hpux_gnu64)" \ +"COPTIONS=$(COPTIONS_hpux_gnu64)" \ +"SYSLIBS=$(SYSLIBSshr_hpux_gnu64)" \ +"SHAREDEXT=$(SHAREDEXT_hpux)" \ +"LDOPTIONS=$(LDOPTIONS_hpux_gnu64)" \ +"AROPTIONS=$(AROPTIONS_hpux)" \ +"RANLIB=$(RANLIB_hpux)" \ +all + @cd $(TOOLSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"CURSES=$(AND.$(CURSES).$(CURSES_$(OS)_$(ENV)))" \ +"CCx=$(CC_hpux_gnu64)" \ +"COPTIONS=$(COPTIONS_hpux_gnu64)" \ +"COPTIONSld=$(COPTIONSld_hpux_gnu64)" \ +"SYSLIBS=$(SYSLIBSexe_hpux_gnu64)" \ +"CURSESLIB=$(CURSESLIB_hpux_gnu64)" \ +all + @cd $(TESTSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"FORTRAN=$(FORTRAN)" \ +"FCx=$(FC_hpux)" \ +"CCx=$(CC_hpux_gnu64)" \ +"SHARED=$(SHARED)" \ +"FOPTIONS=$(FOPTIONS_hpux)" \ +"FOPTIONSld=$(FOPTIONSld_hpux)" \ +"COPTIONS=$(COPTIONS_hpux_gnu64)" \ +"COPTIONSld=$(COPTIONSld_hpux_gnu64)" \ +"SYSLIBS=$(SYSLIBSexe_hpux_gnu64)" \ +"SHAREDEXT=$(SHAREDEXT_hpux)" \ +all +#------------------------------------------------------------------------------ +# IRIX 6.x. +#------------------------------------------------------------------------------ + +all.irix6.sgin32: all.irix6.sgin32.build +all.irix6.sgi64: all.irix6.sgi64.build +all.irix6.gnu: note1.1st all.irix6.gnu.build + +all.irix6.sgin32.build: + @cd $(LIBsrcZlibDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"PIC=$(PIC_irix6_sgin32)" \ +"CCx=$(CC_irix6_sgin32)" \ +"COPTIONS=$(COPTIONS_irix6_sgin32) $(COPTIONSZlib_irix6_sgin32)" \ +all + @cd $(LIBsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"SHARED=$(SHARED)" \ +"PIC=$(PIC_irix6_sgin32)" \ +"CCx=$(CC_irix6_sgin32)" \ +"LDx=$(LD_irix6_sgin32)" \ +"COPTIONS=$(COPTIONS_irix6_sgin32)" \ +"SYSLIBS=$(SYSLIBSshr_irix6_sgin32)" \ +"SHAREDEXT=$(SHAREDEXT_irix6)" \ +"LDOPTIONS=$(LDOPTIONS_irix6_sgin32) -n32" \ +"AROPTIONS=$(AROPTIONS_irix6)" \ +"RANLIB=$(RANLIB_irix6)" \ +all + @cd $(TOOLSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"CURSES=$(AND.$(CURSES).$(CURSES_$(OS)_$(ENV)))" \ +"CCx=$(CC_irix6_sgin32)" \ +"COPTIONS=$(COPTIONS_irix6_sgin32)" \ +"COPTIONSld=$(COPTIONSld_irix6_sgin32)" \ +"SYSLIBS=$(SYSLIBSexe_irix6_sgin32)" \ +"CURSESLIB=$(CURSESLIB_irix6_sgin32)" \ +all + @cd $(TESTSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"FORTRAN=$(FORTRAN)" \ +"FCx=$(FC_irix6)" \ +"CCx=$(CC_irix6_sgin32)" \ +"SHARED=$(SHARED)" \ +"FOPTIONS=$(FOPTIONS_irix6)" \ +"FOPTIONSld=$(FOPTIONSld_irix6)" \ +"COPTIONS=$(COPTIONS_irix6_sgin32)" \ +"COPTIONSld=$(COPTIONSld_irix6_sgin32)" \ +"SYSLIBS=$(SYSLIBSexe_irix6_sgin32)" \ +"SHAREDEXT=$(SHAREDEXT_irix6)" \ +all + +all.irix6.sgi64.build: + @cd $(LIBsrcZlibDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"PIC=$(PIC_irix6_sgi64)" \ +"CCx=$(CC_irix6_sgi64)" \ +"COPTIONS=$(COPTIONS_irix6_sgi64) $(COPTIONSZlib_irix6_sgi64)" \ +all + @cd $(LIBsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"SHARED=$(SHARED)" \ +"PIC=$(PIC_irix6_sgi64)" \ +"CCx=$(CC_irix6_sgi64)" \ +"LDx=$(LD_irix6_sgi64)" \ +"COPTIONS=$(COPTIONS_irix6_sgi64)" \ +"SYSLIBS=$(SYSLIBSshr_irix6_sgi64)" \ +"SHAREDEXT=$(SHAREDEXT_irix6)" \ +"LDOPTIONS=$(LDOPTIONS_irix6_sgin64) -64" \ +"AROPTIONS=$(AROPTIONS_irix6)" \ +"RANLIB=$(RANLIB_irix6)" \ +all + @cd $(TOOLSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"CURSES=$(AND.$(CURSES).$(CURSES_$(OS)_$(ENV)))" \ +"CCx=$(CC_irix6_sgi64)" \ +"COPTIONS=$(COPTIONS_irix6_sgi64)" \ +"COPTIONSld=$(COPTIONSld_irix6_sgi64)" \ +"SYSLIBS=$(SYSLIBSexe_irix6_sgi64)" \ +"CURSESLIB=$(CURSESLIB_irix6_sgi64)" \ +all + @cd $(TESTSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"FORTRAN=$(FORTRAN)" \ +"FCx=$(FC_irix6)" \ +"CCx=$(CC_irix6_sgi64)" \ +"SHARED=$(SHARED)" \ +"FOPTIONS=$(FOPTIONS_irix6)" \ +"FOPTIONSld=$(FOPTIONSld_irix6)" \ +"COPTIONS=$(COPTIONS_irix6_sgi64)" \ +"COPTIONSld=$(COPTIONSld_irix6_sgi64)" \ +"SYSLIBS=$(SYSLIBSexe_irix6_sgi64)" \ +"SHAREDEXT=$(SHAREDEXT_irix6)" \ +all + +all.irix6.gnu.build: + @cd $(LIBsrcZlibDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"PIC=$(PIC_irix6_gnu)" \ +"CCx=$(CC_irix6_gnu)" \ +"COPTIONS=$(COPTIONS_irix6_gnu) $(COPTIONSZlib_irix6_gnu)" \ +all + @cd $(LIBsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"SHARED=$(SHARED)" \ +"PIC=$(PIC_irix6_gnu)" \ +"CCx=$(CC_irix6_gnu)" \ +"LDx=$(LD_irix6_gnu)" \ +"COPTIONS=$(COPTIONS_irix6_gnu)" \ +"SYSLIBS=$(SYSLIBSshr_irix6_gnu)" \ +"SHAREDEXT=$(SHAREDEXT_irix6)" \ +"LDOPTIONS=$(LDOPTIONS_irix6_gnu) -n32" \ +"AROPTIONS=$(AROPTIONS_irix6)" \ +"RANLIB=$(RANLIB_irix6)" \ +all + @cd $(TOOLSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"CURSES=$(AND.$(CURSES).$(CURSES_$(OS)_$(ENV)))" \ +"CCx=$(CC_irix6_gnu)" \ +"COPTIONS=$(COPTIONS_irix6_gnu)" \ +"COPTIONSld=$(COPTIONSld_irix6_gnu)" \ +"SYSLIBS=$(SYSLIBSexe_irix6_gnu)" \ +"CURSESLIB=$(CURSESLIB_irix6_gnu)" \ +all + @cd $(TESTSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"FORTRAN=$(FORTRAN)" \ +"FCx=$(FC_irix6)" \ +"CCx=$(CC_irix6_gnu)" \ +"SHARED=$(SHARED)" \ +"FOPTIONS=$(FOPTIONS_irix6)" \ +"FOPTIONSld=$(FOPTIONSld_irix6)" \ +"COPTIONS=$(COPTIONS_irix6_gnu)" \ +"COPTIONSld=$(COPTIONSld_irix6_gnu)" \ +"SYSLIBS=$(SYSLIBSexe_irix6_gnu)" \ +"SHAREDEXT=$(SHAREDEXT_irix6)" \ +all + +#------------------------------------------------------------------------------ +# AIX. +#------------------------------------------------------------------------------ + +all.aix.ibm: all.aix.ibm.build +all.aix.gnu: all.aix.gnu.build +all.aix.ibm64: all.aix.ibm64.build +all.aix.gnu64: all.aix.gnu64.build + +all.aix.ibm.build: + @cd $(LIBsrcZlibDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"PIC=$(PIC_aix_ibm)" \ +"CCx=$(CC_aix_ibm)" \ +"COPTIONS=$(COPTIONS_aix_ibm) $(COPTIONSZlib_aix_ibm)" \ +all + @cd $(LIBsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"SHARED=$(SHARED)" \ +"PIC=$(PIC_aix_ibm)" \ +"CCx=$(CC_aix_ibm)" \ +"LDx=$(LD_aix_ibm)" \ +"COPTIONS=$(COPTIONS_aix_ibm)" \ +"SYSLIBS=$(SYSLIBSshr_aix_ibm)" \ +"SHAREDEXT=$(SHAREDEXT_aix)" \ +"LDOPTIONS=$(LDOPTIONS_aix_ibm)" \ +"AROPTIONS=$(AROPTIONS_aix)" \ +"RANLIB=$(RANLIB_aix)" \ +all + @cd $(TOOLSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"CURSES=$(AND.$(CURSES).$(CURSES_$(OS)_$(ENV)))" \ +"CCx=$(CC_aix_ibm)" \ +"COPTIONS=$(COPTIONS_aix_ibm)" \ +"COPTIONSld=$(COPTIONSld_aix_ibm)" \ +"SYSLIBS=$(SYSLIBSexe_aix_ibm)" \ +"CURSESLIB=$(CURSESLIB_aix_ibm)" \ +all + @cd $(TESTSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"FORTRAN=$(FORTRAN)" \ +"FCx=$(FC_aix)" \ +"CCx=$(CC_aix_ibm)" \ +"SHARED=$(SHARED)" \ +"FOPTIONS=$(FOPTIONS_aix)" \ +"FOPTIONSld=$(FOPTIONSld_aix)" \ +"COPTIONS=$(COPTIONS_aix_ibm)" \ +"COPTIONSld=$(COPTIONSld_aix_ibm)" \ +"SYSLIBS=$(SYSLIBSexe_aix_ibm)" \ +"SHAREDEXT=$(SHAREDEXT_aix)" \ +all + +all.aix.gnu.build: + @cd $(LIBsrcZlibDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"PIC=$(PIC_aix_gnu)" \ +"CCx=$(CC_aix_gnu)" \ +"COPTIONS=$(COPTIONS_aix_gnu) $(COPTIONSZlib_aix_gnu)" \ +all + @cd $(LIBsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"SHARED=$(SHARED)" \ +"PIC=$(PIC_aix_gnu)" \ +"CCx=$(CC_aix_gnu)" \ +"LDx=$(LD_aix_gnu)" \ +"COPTIONS=$(COPTIONS_aix_gnu)" \ +"SYSLIBS=$(SYSLIBSshr_aix_gnu)" \ +"SHAREDEXT=$(SHAREDEXT_aix)" \ +"LDOPTIONS=$(LDOPTIONS_aix_gnu)" \ +"AROPTIONS=$(AROPTIONS_aix)" \ +"RANLIB=$(RANLIB_aix)" \ +all + @cd $(TOOLSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"CURSES=$(AND.$(CURSES).$(CURSES_$(OS)_$(ENV)))" \ +"CCx=$(CC_aix_gnu)" \ +"COPTIONS=$(COPTIONS_aix_gnu)" \ +"COPTIONSld=$(COPTIONSld_aix_gnu)" \ +"SYSLIBS=$(SYSLIBSexe_aix_gnu)" \ +"CURSESLIB=$(CURSESLIB_aix_gnu)" \ +all + @cd $(TESTSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"FORTRAN=$(FORTRAN)" \ +"FCx=$(FC_aix)" \ +"CCx=$(CC_aix_gnu)" \ +"SHARED=$(SHARED)" \ +"FOPTIONS=$(FOPTIONS_aix)" \ +"FOPTIONSld=$(FOPTIONSld_aix)" \ +"COPTIONS=$(COPTIONS_aix_gnu)" \ +"COPTIONSld=$(COPTIONSld_aix_gnu)" \ +"SYSLIBS=$(SYSLIBSexe_aix_gnu)" \ +"SHAREDEXT=$(SHAREDEXT_aix)" \ +all + +all.aix.ibm64.build: + @cd $(LIBsrcZlibDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"PIC=$(PIC_aix_ibm64)" \ +"CCx=$(CC_aix_ibm64)" \ +"COPTIONS=$(COPTIONS_aix_ibm64) $(COPTIONSZlib_aix_ibm64)" \ +all + @cd $(LIBsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"SHARED=$(SHARED)" \ +"PIC=$(PIC_aix_ibm64)" \ +"CCx=$(CC_aix_ibm64)" \ +"LDx=$(LD_aix_ibm64)" \ +"COPTIONS=$(COPTIONS_aix_ibm64)" \ +"SYSLIBS=$(SYSLIBSshr_aix_ibm64)" \ +"SHAREDEXT=$(SHAREDEXT_aix)" \ +"LDOPTIONS=$(LDOPTIONS_aix_ibm64)" \ +"AROPTIONS=$(AROPTIONS_aix64)" \ +"RANLIB=$(RANLIB_aix)" \ +all + @cd $(TOOLSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"CURSES=$(AND.$(CURSES).$(CURSES_$(OS)_$(ENV)))" \ +"CCx=$(CC_aix_ibm64)" \ +"COPTIONS=$(COPTIONS_aix_ibm64)" \ +"COPTIONSld=$(COPTIONSld_aix_ibm64)" \ +"SYSLIBS=$(SYSLIBSexe_aix_ibm64)" \ +"CURSESLIB=$(CURSESLIB_aix_ibm64)" \ +all + @cd $(TESTSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"FORTRAN=$(FORTRAN)" \ +"FCx=$(FC_aix)" \ +"CCx=$(CC_aix_ibm64)" \ +"SHARED=$(SHARED)" \ +"FOPTIONS=$(FOPTIONS_aix)" \ +"FOPTIONSld=$(FOPTIONSld_aix)" \ +"COPTIONS=$(COPTIONS_aix_ibm64)" \ +"COPTIONSld=$(COPTIONSld_aix_ibm64)" \ +"SYSLIBS=$(SYSLIBSexe_aix_ibm64)" \ +"SHAREDEXT=$(SHAREDEXT_aix)" \ +all + +all.aix.gnu64.build: + @cd $(LIBsrcZlibDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"PIC=$(PIC_aix_gnu64)" \ +"CCx=$(CC_aix_gnu64)" \ +"COPTIONS=$(COPTIONS_aix_gnu64) $(COPTIONSZlib_aix_gnu64)" \ +all + @cd $(LIBsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"SHARED=$(SHARED)" \ +"PIC=$(PIC_aix_gnu64)" \ +"CCx=$(CC_aix_gnu64)" \ +"LDx=$(LD_aix_gnu64)" \ +"COPTIONS=$(COPTIONS_aix_gnu64)" \ +"SYSLIBS=$(SYSLIBSshr_aix_gnu64)" \ +"SHAREDEXT=$(SHAREDEXT_aix)" \ +"LDOPTIONS=$(LDOPTIONS_aix_gnu64)" \ +"AROPTIONS=$(AROPTIONS_aix64)" \ +"RANLIB=$(RANLIB_aix)" \ +all + @cd $(TOOLSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"CURSES=$(AND.$(CURSES).$(CURSES_$(OS)_$(ENV)))" \ +"CCx=$(CC_aix_gnu64)" \ +"COPTIONS=$(COPTIONS_aix_gnu64)" \ +"COPTIONSld=$(COPTIONSld_aix_gnu64)" \ +"SYSLIBS=$(SYSLIBSexe_aix_gnu64)" \ +"CURSESLIB=$(CURSESLIB_aix_gnu64)" \ +all + @cd $(TESTSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"FORTRAN=$(FORTRAN)" \ +"FCx=$(FC_aix)" \ +"CCx=$(CC_aix_gnu64)" \ +"SHARED=$(SHARED)" \ +"FOPTIONS=$(FOPTIONS_aix)" \ +"FOPTIONSld=$(FOPTIONSld_aix)" \ +"COPTIONS=$(COPTIONS_aix_gnu64)" \ +"COPTIONSld=$(COPTIONSld_aix_gnu64)" \ +"SYSLIBS=$(SYSLIBSexe_aix_gnu64)" \ +"SHAREDEXT=$(SHAREDEXT_aix)" \ +all + +#------------------------------------------------------------------------------ +# Mach. +#------------------------------------------------------------------------------ + +all.mach.next: note1.1st all.mach.next.build +all.mach.macosx: all.mach.macosx.build +all.mach.gnu: note1.1st all.mach.gnu.build + +all.mach.next.build: + @cd $(LIBsrcZlibDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"PIC=$(PIC_mach_next)" \ +"CCx=$(CC_mach_next)" \ +"COPTIONS=$(COPTIONS_mach_next)" \ +all + @cd $(LIBsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"SHARED=$(SHARED_mach)" \ +"PIC=$(PIC_mach_next)" \ +"CCx=$(CC_mach_next)" \ +"LDx=$(LD_mach_next)" \ +"COPTIONS=$(COPTIONS_mach_next)" \ +"SYSLIBS=$(SYSLIBSshr_mach_next)" \ +"SHAREDEXT=$(SHAREDEXT_mach)" \ +"LDOPTIONS=$(LDOPTIONS_mach_next)" \ +"AROPTIONS=$(AROPTIONS_mach)" \ +"RANLIB=$(RANLIB_mach)" \ +all + @cd $(TOOLSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"CURSES=$(CURSES_mach_next)" \ +"CCx=$(CC_mach_next)" \ +"COPTIONS=$(COPTIONS_mach_next)" \ +"COPTIONSld=$(COPTIONSld_mach_next)" \ +"SYSLIBS=$(SYSLIBSexe_mach_next)" \ +"CURSESLIB=$(CURSESLIB_mach_next)" \ +all + @cd $(TESTSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"FORTRAN=$(FORTRAN)" \ +"FCx=$(FC_mach)" \ +"CCx=$(CC_mach_next)" \ +"SHARED=$(SHARED_mach)" \ +"FOPTIONS=$(FOPTIONS_mach)" \ +"FOPTIONSld=$(FOPTIONSld_mach)" \ +"COPTIONS=$(COPTIONS_mach_next)" \ +"COPTIONSld=$(COPTIONSld_mach_next)" \ +"SYSLIBS=$(SYSLIBSexe_mach_next)" \ +"SHAREDEXT=$(SHAREDEXT_mach)" \ +all + +all.mach.macosx.build: + @cd $(LIBsrcZlibDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"PIC=$(PIC_mach_macosx)" \ +"CCx=$(CC_mach_macosx)" \ +"COPTIONS=$(COPTIONS_mach_macosx)" \ +all + @cd $(LIBsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"SHARED=$(SHARED_mach)" \ +"PIC=$(PIC_mach_macosx)" \ +"CCx=$(CC_mach_macosx)" \ +"LDx=$(LD_mach_macosx)" \ +"COPTIONS=$(COPTIONS_mach_macosx)" \ +"SYSLIBS=$(SYSLIBSshr_mach_macosx)" \ +"SHAREDEXT=$(SHAREDEXT_mach)" \ +"LDOPTIONS=$(LDOPTIONS_mach_macosx)" \ +"AROPTIONS=$(AROPTIONS_mach)" \ +"RANLIB=$(RANLIB_mach)" \ +all + @cd $(TOOLSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"CURSES=$(CURSES_mach_macosx)" \ +"CCx=$(CC_mach_macosx)" \ +"COPTIONS=$(COPTIONS_mach_macosx)" \ +"COPTIONSld=$(COPTIONSld_mach_macosx)" \ +"SYSLIBS=$(SYSLIBSexe_mach_macosx)" \ +"CURSESLIB=$(CURSESLIB_mach_macosx)" \ +all + @cd $(TESTSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"FORTRAN=$(FORTRAN)" \ +"FCx=$(FC_mach)" \ +"CCx=$(CC_mach_macosx)" \ +"SHARED=$(SHARED_mach)" \ +"FOPTIONS=$(FOPTIONS_mach)" \ +"FOPTIONSld=$(FOPTIONSld_mach)" \ +"COPTIONS=$(COPTIONS_mach_macosx)" \ +"COPTIONSld=$(COPTIONSld_mach_macosx)" \ +"SYSLIBS=$(SYSLIBSexe_mach_macosx)" \ +"SHAREDEXT=$(SHAREDEXT_mach)" \ +all + +all.mach.gnu.build: + @cd $(LIBsrcZlibDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"PIC=$(PIC_mach_gnu)" \ +"CCx=$(CC_mach_gnu)" \ +"COPTIONS=$(COPTIONS_mach_gnu)" \ +all + @cd $(LIBsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"SHARED=$(SHARED_mach)" \ +"PIC=$(PIC_mach_gnu)" \ +"CCx=$(CC_mach_gnu)" \ +"LDx=$(LD_mach_gnu)" \ +"COPTIONS=$(COPTIONS_mach_gnu)" \ +"SYSLIBS=$(SYSLIBSshr_mach_gnu)" \ +"SHAREDEXT=$(SHAREDEXT_mach)" \ +"LDOPTIONS=$(LDOPTIONS_mach_gnu)" \ +"AROPTIONS=$(AROPTIONS_mach)" \ +"RANLIB=$(RANLIB_mach)" \ +all + @cd $(TOOLSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"CURSES=$(CURSES_mach_gnu)" \ +"CCx=$(CC_mach_gnu)" \ +"COPTIONS=$(COPTIONS_mach_gnu)" \ +"COPTIONSld=$(COPTIONSld_mach_gnu)" \ +"SYSLIBS=$(SYSLIBSexe_mach_gnu)" \ +"CURSESLIB=$(CURSESLIB_mach_gnu)" \ +all + @cd $(TESTSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"FORTRAN=$(FORTRAN)" \ +"FCx=$(FC_mach)" \ +"CCx=$(CC_mach_gnu)" \ +"SHARED=$(SHARED_mach)" \ +"FOPTIONS=$(FOPTIONS_mach)" \ +"FOPTIONSld=$(FOPTIONSld_mach)" \ +"COPTIONS=$(COPTIONS_mach_gnu)" \ +"COPTIONSld=$(COPTIONSld_mach_gnu)" \ +"SYSLIBS=$(SYSLIBSexe_mach_gnu)" \ +"SHAREDEXT=$(SHAREDEXT_mach)" \ +all + +#------------------------------------------------------------------------------ +# QNX. +#------------------------------------------------------------------------------ + +all.qnx.ccwat: note1.1st all.qnx.ccwat.build + +all.qnx.ccwat.build: + @cd $(LIBsrcZlibDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"PIC=$(PIC_qnx_ccwat)" \ +"CCx=$(CC_qnx_ccwat)" \ +"COPTIONS=$(COPTIONS_qnx_ccwat)" \ +all + @cd $(LIBsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"SHARED=$(SHARED_qnx)" \ +"PIC=$(PIC_qnx_ccwat)" \ +"CCx=$(CC_qnx_ccwat)" \ +"LDx=$(LD_qnx_ccwat)" \ +"COPTIONS=$(COPTIONS_qnx_ccwat)" \ +"SYSLIBS=$(SYSLIBSshr_qnx_ccwat)" \ +"SHAREDEXT=$(SHAREDEXT_qnx)" \ +"LDOPTIONS=$(LDOPTIONS_qnx_ccwat)" \ +"AROPTIONS=$(AROPTIONS_qnx)" \ +"RANLIB=$(RANLIB_qnx)" \ +all + @cd $(TOOLSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"CURSES=$(CURSES_qnx_ccwat)" \ +"CCx=$(CC_qnx_ccwat)" \ +"COPTIONS=$(COPTIONS_qnx_ccwat)" \ +"COPTIONSld=$(COPTIONSld_qnx_ccwat)" \ +"SYSLIBS=$(SYSLIBSexe_qnx_ccwat)" \ +"CURSESLIB=$(CURSESLIB_qnx_ccwat)" \ +all + @cd $(TESTSsrcDIR); $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) \ +"FORTRAN=$(FORTRAN)" \ +"FCx=$(FC_qnx)" \ +"CCx=$(CC_qnx_ccwat)" \ +"SHARED=$(SHARED_qnx)" \ +"FOPTIONS=$(FOPTIONS_qnx)" \ +"FOPTIONSld=$(FOPTIONSld_qnx)" \ +"COPTIONS=$(COPTIONS_qnx_ccwat)" \ +"COPTIONSld=$(COPTIONSld_qnx_ccwat)" \ +"SYSLIBS=$(SYSLIBSexe_qnx_ccwat)" \ +"SHAREDEXT=$(SHAREDEXT_qnx)" \ +all + +#------------------------------------------------------------------------------ +# Show settings. +#------------------------------------------------------------------------------ + +show: show.$(OS).$(ENV) + +show.sunos.bsd: show.supported +show.sunos.bsd5: show.supported +show.sunos.sysV: show.supported +show.sunos.gnu: show.supported +show.sunos.gnu5: show.supported +show.solaris.bsd: show.supported +show.solaris.bsd5: show.supported +show.solaris.sparc: show.supported +show.solaris.sparc64: show.supported +show.solaris.sysV: show.supported +show.solaris.gnu: show.supported +show.solaris.gnu64: show.supported +show.solaris.gnu64i: show.supported +show.solaris.gnu5: show.supported +show.solaris.gnu5_64: show.supported +show.solaris.gnu-64: show.supported +show.ultrix.risc: show.supported +show.ultrix.gnu: show.supported +show.mach.next: show.supported +show.mach.macosx: show.supported +show.mach.gnu: show.supported +show.hpux.std: show.supported +show.hpux.opt: show.supported +show.hpux.posix: show.supported +show.hpux.gnu: show.supported +show.aix.ibm: show.supported +show.aix.gnu: show.supported +show.osf.dec: show.supported +show.osf.gnu: show.supported +show.osf.dec64: show.supported +show.osf.gnu64: show.supported +show.irix34.sgi: show.supported +show.irix34.gnu: show.supported +show.irix5.sgi: show.supported +show.irix5.gnu: show.supported +show.irix6.sgi32: show.supported +show.irix6.sgin32: show.supported +show.irix6.sgi64: show.supported +show.irix6.gnu: show.supported +show.qnx.gnu: show.notsupported +show.linux.gnu: show.supported +show.linux.gnu32: show.supported +show.linux.gnu64: show.supported +show.linux.intel: show.supported +show.breebsd.gnu: show.supported +show.cygwin.gnu: show.supported +show.mingw.gnu: show.supported +show.freebsd.gnu: show.supported +show.posix.vax: show.supported +show.posix.alphaD: show.supported +show.posix.alphaG: show.supported +show.posix.alphaI: show.supported +show.macosx.i386: show.supported +show.macosx.x86_64: show.supported +show.macosx.arm: show.supported +show.macosx.arm64: show.supported +show.macosx.arm32: show.supported + +show.supported: + @echo SHARED is $(SUPPORTED.$(SHARED_$(OS))) + @echo CURSES is $(SUPPORTED.$(CURSES_$(OS)_$(ENV))) + @echo FOPTIONS=$(FOPTIONS_$(OS)) + @echo FOPTIONSld=$(FOPTIONSld_$(OS)) + @echo SHAREDEXT=$(SHAREDEXT_$(OS)) + @echo LDOPTIONSlibcdf=$(LDOPTIONS_$(OS)_$(ENV)) + @echo RANLIB=$(RANLIB_$(OS)) + @echo FCx=$(FC_$(OS)) + @echo CCx=$(CC_$(OS)_$(ENV)) + @echo PIC=$(PIC_$(OS)_$(ENV)) + @echo COPTIONS=$(COPTIONS_$(OS)_$(ENV)) + @echo COPTIONSld=$(COPTIONSld_$(OS)_$(ENV)) + @echo CURSESLIB=$(CURSESLIB_$(OS)_$(ENV)) + @echo SYSLIBSexe=$(SYSLIBSexe_$(OS)_$(ENV)) + @echo SYSLIBSshr=$(SYSLIBSshr_$(OS)_$(ENV)) + +show.notsupported: + @echo Sorry, \`make show\' is not available on this machine. + +#------------------------------------------------------------------------------ +# Warning messages. +#------------------------------------------------------------------------------ + +note1.1st: + @cat Note.1st + +note1.noCC: + @cat Note.noCC + +note1.solaris: + @cat Note.solaris + +note1.intel: + @cat Note.intel + +note1.macx.no: + @cat Note.MacX + +note1.macx.yes: + @$(NOOP) + +note1.macx.i386: + @echo + @echo Xcode version: $(XCODEVERSION) no longer supports i386 build... + @echo diff --git a/cdf38_1-dist/Note.1st b/cdf38_1-dist/Note.1st new file mode 100644 index 0000000..80f5fb7 --- /dev/null +++ b/cdf38_1-dist/Note.1st @@ -0,0 +1,16 @@ + + * Warning * + +The OS/ENV combination you have selected has not been tested. The +options which will be used are based on previous experiences with the +operating system being used. If an error occurs, don't panic, simply +contact us [NASA-CDF-Support@nasa.onmicrosoft.com]. The reason that your +OS/ENV combination is not tested is probably because we no longer have +a guest account on a machine having that particular OS/ENV combination. +If you would like to offer us a guest account for testing purposes we +would be very happy to hear from you. In fact, we would even build/test +the CDF distribution on your machine for you. + +If this `make' completes without any warnings or errors, please let us +know so we can remove this warning. Anyway, here we go... + diff --git a/cdf38_1-dist/Note.gcc b/cdf38_1-dist/Note.gcc new file mode 100644 index 0000000..ae9f091 --- /dev/null +++ b/cdf38_1-dist/Note.gcc @@ -0,0 +1,6 @@ + +If you are using GCC's gfortran to build, Use the newer version, e.g., GCC +V4.4.2. (Use "gfortran -v" to show the compiler version.) Using an older +version, e.g., V4.1.2, may have problems in building/testing the test +Fortran programs. + diff --git a/cdf38_1-dist/Note.intel b/cdf38_1-dist/Note.intel new file mode 100644 index 0000000..7e499ea --- /dev/null +++ b/cdf38_1-dist/Note.intel @@ -0,0 +1,5 @@ + +If you are also using Intel's Fortran compiler, use this +make OS=linux ENV=intel FORTRAN=yes FC_linux=ifort all +for the make. + diff --git a/cdf38_1-dist/Note.linux b/cdf38_1-dist/Note.linux new file mode 100644 index 0000000..f91b7bb --- /dev/null +++ b/cdf38_1-dist/Note.linux @@ -0,0 +1,22 @@ +If + $ make OS=linux ENV=gnu ... all + +fails due to missing ncurses that is used by a couple of tool programs, cdfedit +and cdfexport, you can do the following to install the ncurses (with root +authority): + + For Debian/Ubuntu based distributions, do + $ sudo apt install libncurses5-dev + For RPM based distributions, do + $ sudo dnf install ncurses-devel + +Or, you can do this to bypass the build of ncurses-based tools: + + $ make OS=linux ENV=gnu CURSES=no .... all + +Recommended/tested gcc: + Version 4.4.2 or later + +Recommended/tested gfortran: + Version 4.4.2 or later + diff --git a/cdf38_1-dist/Note.macosx b/cdf38_1-dist/Note.macosx new file mode 100644 index 0000000..392d0eb --- /dev/null +++ b/cdf38_1-dist/Note.macosx @@ -0,0 +1,16 @@ +To compile and link on Mac OS X 10.6, make the following changes to Makefile: + 1) Replace MacOSX10.5.sdk with MacOSX10.6.sdk + 2) Replace /usr/lib/gcc/powerpc-apple-darwin9 with + /usr/lib/gcc/powerpc-apple-darwin10 + +To compile and link on Mac OS X Big Sur + 1) Make sure that the Xcode is updated with v13 at later, depending on the + OS version. The Xcode should be placed at /Applications/Xcode.app folder. + 2) For gfortran, make sure its version is also updated. + https://github.com/fxcoudert/gfortran-for-macOS/releases/tag/11.2-bigsur-intel + If you encounter this error: + gfortran: error: unrecognized command line option ‘-fallow-argument-mismatch’ + it means the gfortran might be too old. Either upgrade the gfortran, or + edit the Makefile. Search for the line with ‘-fallow-argument-mismatch’ + option and remove this option from the line. + diff --git a/cdf38_1-dist/Note.noCC b/cdf38_1-dist/Note.noCC new file mode 100644 index 0000000..0810624 --- /dev/null +++ b/cdf38_1-dist/Note.noCC @@ -0,0 +1,5 @@ + +If an error occurs because the C compiler could not be found, enter +`make all.help' again and read the subsection "C compiler not found" +in the section named `Possible Problems'. + diff --git a/cdf38_1-dist/Note.solaris b/cdf38_1-dist/Note.solaris new file mode 100644 index 0000000..c3e0046 --- /dev/null +++ b/cdf38_1-dist/Note.solaris @@ -0,0 +1,4 @@ + +If you are running Solaris 2.3 (or earlier), make sure that the +`SOLARISbsdDIRUTILSbug' macro setting in `cdfconfig.h' is correct. + diff --git a/cdf38_1-dist/README.after_install b/cdf38_1-dist/README.after_install new file mode 100644 index 0000000..4f52f26 --- /dev/null +++ b/cdf38_1-dist/README.after_install @@ -0,0 +1,52 @@ +This is the CDF V3.8.1 online software distribution directory for Unix +systems. This directory contains the following files: + +Welcome.txt The welcome information for the current version. + +CDF_copyright.txt This file contains the CDF copyright. + +CHANGES.txt The software change log for the current CDF version. + +HOWTO.run-Java-tools The file contains the instructions of how to run + the Java-based CDF tools. + +HOWTO.run_previous_version The file contains the instructions to set it up + to use the libraries and tools from a previously + installed version. + +Makefile Make file for various Unix platforms. + Type "make" for installation instructions for + the supported Unix platforms. + + This makefile builds the CDF library and the + command line version of the CDF tools. + +README.after_install This is the file you are browsing. + +README.install CDF library installation instructions. + +README.install_java_APIs Instructions on how to build and use the Java + Native Interface (JNI) to CDF library. + +README_cdf_tools.txt This file contains a description of the CDF tools + that allow users to manipulate CDF files (e.g. + CDFEdit, CDFExport, etc.) + +Release.notes CDF 3.8.1 release notes. + +cdfjava This directory contains the CDF Java APIs, the JNI + code, and example programs that demonstrate how to + create a CDF file and read data from it. It also + contains the CDF XML utilities. + + NOTE: + This directory will only exist if the CDF Java + APIs are installed. + +samples This directory contains sample CDF files and + programs written in C and Fortran. + +src This directory contains the CDF source code and + some test programs that can be used to check + whether the CDF library is properly installed. + diff --git a/cdf38_1-dist/README.install b/cdf38_1-dist/README.install new file mode 100644 index 0000000..c4477e3 --- /dev/null +++ b/cdf38_1-dist/README.install @@ -0,0 +1,167 @@ + CDF Version 3.8.1, UNIX/POSIX Systems + +Common Data Format (CDF) is a conceptual data abstraction for storing +multi-dimensional data sets. The basic component of CDF is a software +programming interface that is a device independent view of the CDF data +model. The application developer is insulated from the actual physical +file format for reasons of conceptual simplicity, device independence, +and future expandability. CDF files created on any given platform can be +transported to any other platform on to which CDF is ported and used with +any CDF tools or layered applications. A more detailed introduction to +CDF can be found in the CDF User's Guide. + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!! You must have a C compiler in order to build the CDF distribution. !! +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +The CDF library and toolkit programs are written in C. A C compiler is +necessary to build the CDF distribution. The CDF distribution also contains +several Fortran source files which support the Fortran interface. If a +Fortran compiler is not available, the distribution can be built without +Fortran support. + +The CDF distribution package now contains CDF Java APIs as well as Java +version of the CDF tools (e.g., CDFEdit, CDFExport, SkeletonTable, SkeletonCDF, +etc.). The Java APIs, built on top of the CDF library written in C, allow +users to develop platform-independent CDF applications, and by default, they +are not installed as part of standard installation. The APIs can be +installed by following the installation instructions described in the +README.install_java_APIs file. + +Documentation for CDF consists of the CDF User's Guide, the CDF C Reference +Manual, and the CDF Fortran Reference Manual. + +Requests for assistance or documentation should be sent to: + + NASA-CDF-Support@nasa.onmicrosoft.com + +If you get the distribution, please send CDFSUPPORT a message so we can put +you on our mailing list. That way you will be notified of new releases. + + +UNIX/POSIX Installation Instructions +------------------------------------ + +CDF V3.8.1 is distributed for UNIX and POSIX systems as a gzipped compressed +'tar' file . + +To uncompress cdf38_1-dist-all.tar.gz, cdf38_1-dist-cdf.tar.gz, +cdf38_1-dist-java.tar.gz, use the `gzip' command as follows... + + gunzip + +The resulting file will be named cdf38_1-dist-all.tar, cdf38_1-dist-cdf.tar, +or cdf38_1-dist-java.tar. + +Then use the `tar' command to extract the CDF source files. `tar' will create +a directory named `cdf38_1-dist' containing several subdirectories. The source +files for the distribution will be placed into these directories. + +The syntax for the `tar' command is different on some flavors of UNIX. For +most UNIX systems (and the POSIX shell) use... + + tar -xvf cdf38_1-dist-all.tar + +For the IBM-RS6000/AIX use... + + tar -x -v -f cdf38_1-dist-all.tar + + +CDF distribution has a makefile that automatically builds the CDF library and +tools. The following steps should be taken to build and install CDF. + + 1. Set your current directory (cd) to the top level CDF directory + (the directory named `cdf38_1-dist' created by `tar'). + + 2. If desired, modify the include file named `cdfconfig.h' in the + `src/include' directory to the desired default parameters for + your distribution. These default parameters affect a number + of actions taken by the CDF library and toolkit programs in + various situations (the comments in `cdfconfig.h' describe these + default parameters). + + 3. Compile/link the distribution. First enter... + + make all.help + + to determine the required/optional `make' variables to be used. + Then enter... + + make `make variables...' all + + Some informational/warning messages from the compilers may be + displayed. These can be ignored and should have no effect on + the operation of the CDF library or toolkit programs. + + Examples: + To build the distribution on a Solaris system using the + System V C compiler enter... + + make OS=solaris ENV=sparc all + + To build the distribution on Linux system using the GNU C + compiler enter... + + make OS=linux ENV=gnu all + + The `OS' and `ENV' variables are described in the `make all.help' + part of this step. + + 4. Test that the distribution was built correctly by entering... + + make test + + The name of each test executed will be displayed. No other + messages will be displayed unless an error occurs. Entering... + + make test.help + + will display additional information about the testing of the + CDF distribution. + + 5. Install the definitions files, libraries, include files, toolkit + programs, and help files. First enter... + + make install.help + + to determine the required/optional `make' variables to be used. + Then enter... + + make `make variables...' install + + The appropriate files will be copied to the `include', `lib', + `bin', and `lib/cdf/help' directories (from the `src/...' + directories). + + Examples: + 1) The following command will install the CDF distribution under + the current working directory (i.e CDF base directory). + + make install + + 2) If you want to install the CDF distribution in the + user-specified directory called '/user/local/cdf', enter ... + + make INSTALLDIR=/usr/local/cdf install + + 6. Delete the library(s), object files, and executables in the + `src/...' directories by entering... + + make clean + + You may also delete the entire `src/...' directory tree if you + have no need for the source code. + + 7. If you have Fortran applications which include `CDF.INC' instead + of `cdf.inc', you may want to add a soft logical link in the + `include' directory which will point `CDF.INC' to `cdf.inc'. To + do so set your current directory to the `include' directory and + use the command `ln -s cdf.inc CDF.INC'. (Note that this logical + link existed automatically in previous CDF distributions after + the `make install' step was performed.) + + 8. (Optional) JAVA Support + Please read the file README.install_java_APIs in the top level of + CDF directory for instructions on how to build and install the Java + Native Interface (JNI) and Java-CDF APIs. + diff --git a/cdf38_1-dist/README.install_java_APIs b/cdf38_1-dist/README.install_java_APIs new file mode 100644 index 0000000..073baf1 --- /dev/null +++ b/cdf38_1-dist/README.install_java_APIs @@ -0,0 +1,231 @@ + CDF Version 3.8.1, UNIX/POSIX Systems + +The CDF distribution package now contains the CDF Java APIs, in addition to +the existing C and Fortran APIs, to allow users to develop platform-independent +CDF applications. By default, the Java APIs are not installed as part of +standard installation, and the APIs can be installed by following the +installation instructions listed below. + +Documentation for the CDF Java APIs is available at + http://cdf.gsfc.nasa.gov/CDF_docs.html + + +*************************************************************************** +* Please make sure that you have done the following before proceeding * +* with the CDF Java APIs installation: * +* * +* - installed the JDK 1.5 or later. * +* - untarred the CDF distribution package * +* - installed the CDF distribution package using the 'make' command. * +* - executed the definitions.C|B|K file located under the * +* /bin directory (e.g. `source definitions.C' for C shell).* +* This file defines the environment variables (e.g. CDF_BASE, * +* CDF_LIB, etc.) that are used by the installation instructions * +* described below. * +*************************************************************************** + +Installation instructions of the CDF Java APIs +---------------------------------------------- +1. Set your current directory (cd) to the top level directory where + + cd $CDF_BASE + +2. If you downloaded a tar file that contains both the CDF library and the + CDF Java APIs (i.e. cdf38_1-dist-all.tar), go to step 3. + + Untar the CDF Java APIs, cdf38_1-dist-java.tar, as follows: + tar xvf cdf38_1-dist-java.tar + +3. Set your current directory (cd) to the cdfjava/jni directory. + +4. Compile the JNI code, cdfNativeLibrary.c, as follows: + + cc -c cdfNativeLibrary.c + -I${CDF_BASE}/include + -I + -I + -o cdfNativeLibrary.o + + NOTE: During compilation, you may get the following warning message or + something similar on some platforms. Don't be alarmed about the + message and proceed to the next step. + + "cdfNativeLibrary.c: In function `getJavaField': + cdfNativeLibrary.c:398: warning: assignment discards + qualifiers from pointer target type" + + Examples: + The examples below assume that the appropriate environmental variables + have been properly defined. The CDF_BASE and CDF_LIB variables are + defined in the definitions. file located under the + ${CDF_BASE}/bin directory. The JAVA_HOME environment variable + refers to the name of the root/base directory where the Java virtual + machine is installed. + + If you have Linux, the following command will compile the JNI + code: + + gcc -I${CDF_BASE}/include \ + -I${JAVA_HOME}/include \ + -I${JAVA_HOME}/include/linux \ + -fPIC \ + -c cdfNativeLibrary.c + + For a Sun OS or Solaris sparc, the following command + will compile the JNI code into 32-bit mode (using Sun's compiler): + + cc -DSOLARIS -DHAVE_CONFIG_H -Kpic \ + -I${CDF_BASE}/include \ + -I${JAVA_HOME}/include \ + -I${JAVA_HOME}/include/solaris \ + -c cdfNativeLibrary.c + + For a Solaris sparc (8/9/10), the following command + will compile the JNI code into 64-bit mode (using Sun's compiler): + + cc -DSOLARIS -DSOLARIS64 -DHAVE_CONFIG_H -xarch=v9a -Kpic \ + -I${CDF_BASE}/include \ + -I${JAVA_HOME}/include \ + -I${JAVA_HOME}/include/solaris \ + -c cdfNativeLibrary.c + + For a Solaris sparc (8/9/10), the following command + will compile the JNI code into 64-bit mode (using Gnu's gcc compiler): + + gcc -DSOLARIS -DSOLARIS64 -m64 -fpic \ + -I${CDF_BASE}/include \ + -I${JAVA_HOME}/include \ + -I${JAVA_HOME}/include/solaris \ + -c cdfNativeLibrary.c + + If you have OSF1 on a DEC Alpha, the following command will compile the + JNI code: + + gcc -I${CDF_BASE}/include \ + -I${JAVA_HOME}/include/java \ + -I${JAVA_HOME}/include/java/alpha \ + -c cdfNativeLibrary.c + (You may need to include "-pthread" option if you use DEC's C + compiler.) + + If you are using the IBM JDK under Linux, the following command + will compile the JNI code: + + cc -I${CDF_BASE}/include \ + -I${JAVA_HOME}/include \ + -I${JAVA_HOME}/include/linux \ + -c cdfNativeLibrary.c + + If you are using Mac OS X, the following command will compile the + JNI code as well as create a shared library. It covers both this + step and the next step (go to step 6 after successful execution): + + (Refer Apple's "Mac OS X GM Release Notes: Java" for more information.) + + Power PC + -------- + gcc -isysroot/Developer/SDKs/MacOSX10.4u.sdk -arch ppc -D__ppc__ + -D__MACH__ -D__APPLE__ -D_FILE_OFFSET_BITS=64 + -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE + -bundle -I/System/Library/Frameworks/JavaVM.framework/Headers + -I../../src/include -I. + -framework JavaVM + -o ../lib/libcdfNativeLibrary.jnilib + ../../lib/libcdf.dylib cdfNativeLibrary.c + + Intel Mac (32-bit) + ------------------ + gcc -L/Developer/SDKs/MacOSX10.5.sdk -arch i386 -Di386 + -D__MACH__ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE + -D_LARGEFILE_SOURCE + -bundle -I/System/Library/Frameworks/JavaVM.framework/Headers + -I../../src/include -I. + -framework JavaVM + -o ../lib/libcdfNativeLibrary.jnilib + ../../lib/libcdf.dylib cdfNativeLibrary.c + + Intel Mac (64-bit) + ------------------ + gcc -L/Developer/SDKs/MacOSX10.5.sdk -arch x86_64 -Di386 + -D__MACH__ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE + -D_LARGEFILE_SOURCE + -bundle -I/System/Library/Frameworks/JavaVM.framework/Headers + -I../../src/include -I. + -framework JavaVM + -o ../lib/libcdfNativeLibrary.jnilib + ../../lib/libcdf.dylib cdfNativeLibrary.c + + NOTE: Mac OS X 10.5 is binary-compatible with 10.6 and vice versa. + So /Developer/SDKs/MacOSX10.5u.sdk can be replaced with + /Developer/SDKs/MacOSX10.6u.sdk + + + NOTE: The include path is slightly different depending upon which + JDK version and operating system you use. + + +5. Create a shared library for the JNI code just compiled as follows: + + If you are using OSF1, Linux, Irix5|6, or AIX, use the following + command: + + ld -shared cdfNativeLibrary.o \ + -o ../lib/libcdfNativeLibrary.so -L${CDF_LIB} -lc -lm -lcdf + + If you are using a Solaris or Sun OS, use the following + command to make a 32-bit mode library: + + ld -G cdfNativeLibrary.o \ + -o ../lib/libcdfNativeLibrary.so -L${CDF_LIB} -lc -lm -lcdf + + If you are using a Solaris sparc (8|9), use the following command for + Sun's linker to make a 64-bit mode library: + + ld -G cdfNativeLibrary.o -64 -L/usr/lib/sparcv9 \ + -o ../lib/libcdfNativeLibrary.so -L${CDF_LIB} -lc -lm -lcdf + + Note: assume that 64-bit library is at /usr/lib/sparcv9. + + If you are using a Solaris sparc (8|9), use the following command for + Gnu's gcc linker to make a 64-bit mode library: + + gcc -G cdfNativeLibrary.o -m64 -L/usr/local/gcc-3.2/lib/sparcv9 \ + -o ../lib/libcdfNativeLibrary.so -L${CDF_LIB} -lc -lm -lcdf + + Note: assume that Gnu's 64-bit library is at /usr/local/gcc-3.2/lib/sparcv9. + + If you are using HP-UX, use the following command: + + ld -b cdfNativeLibrary.o \ + -o ../lib/libcdfNativeLibrary.sl -L${CDF_LIB} -lc -lm -lcdf + +6. Set the CLASSPATH and LD_LIBRARY_PATH (DYLD_LIBRARY_PATH for Mac OS X) + environment variables. + + 1) CLASSPATH should point to the following file(s): + + - the location (full path name) of the cdfjava.jar file that is + located in the cdfjava/classes directory. + + Example: + setenv CLASSPATH ${CLASSPATH}:.: ${CDF_JAVA}/classes/cdfjava.jar + + Optionally, if the Java-based CDF tools will be used, then also include + CDFToolsDriver.jar and cdfml.jar in the CLASSPATH. These jar files reside + in the ${CDF_JAVA}/cdftools and ${CDF_JAVA}/cdfml directroires, + respectively. + + 2) LD_LIBRARY_PATH (DYLD_LIBRARY_PATH for Mac OS X) should point to the + following files: + + - the location (full path name) of the libcdfNativeLibrary.[so|sl|jnilib] + created in step 5 (it should be under cdfjava/lib) + + - the location (full path name) of the CDF library (libcdf.[so|sl|jnilib] + that is defined by the environment variable CDF_LIB that is defined when + the CDF library is installed. + + Example: + setenv LD_LIBRARY_PATH .:${CDF_LIB}:${CDF_JAVA}/lib (Unix/Linux) + setenv DYLD_LIBRARY_PATH .:${CDF_LIB}:${CDF_JAVA}/lib (Mac OS X) + diff --git a/cdf38_1-dist/README_cdf_tools.txt b/cdf38_1-dist/README_cdf_tools.txt new file mode 100644 index 0000000..b850f34 --- /dev/null +++ b/cdf38_1-dist/README_cdf_tools.txt @@ -0,0 +1,173 @@ +CDF Utilities +============= +Below is a list of the CDF tools that are included as part of the standard CDF +distribution package and their descriptions. + +There are two different types of the CDF tools are distributed in the CDF +package: command line-based and GUI-based. + +GUI CDF Tools +------------- + 1) CDFToolsDriver.jar - contains the GUI version (Java) of the CDF tools + + This file contains a complete suite of the CDF tools. + + See HOWTO.run-Java-tools.txt in the directory on + how to run/invoke the GUI tools. + + 2) CDFso.exe (Windows only) + + This program contains MS Foundation Class-based CDFstats, CDFconvert, + CDFcompare, CDFinquire, CDFdump, SkeletonCDF, and + SkeletonTable + + Double-click the program and select the program you want to invoke + from the 'File' menu item. + + 3) CDFfsi.exe (Windows only) + + This program contains MS Foundation Class-based CDFedit and CDFexport + + Double-click the program and select the program you want to invoke + from the 'File' menu item. + + +Command-line CDF Tools +---------------------- +The following programs can be found under the /bin directory: + + 1) cdfcompare + 2) cdfconvert + 3) cdfdump + 4) cdfedit + 5) cdfexport + 6) cdfinquire + 7) cdfirsdump + 8) cdfleapsecondsinfo + 9) cdfmerge + 10) cdfstats + 11) cdfvalidate + 12) skeletoncdf + 13) skeletontable + +Enterring the program name alone will display the help message. + + +Description of CDF Utilities +============================ +CDFcompare + This utility is used to display a directory listing of a CDF's files. + The .cdf file is displayed first followed by the rVariable files and + then the zVariable files (if either exist in a multi-file CDF) in + numerical order. + +CDFconvert + This program is used to convert various properties of a CDF. In all + cases new CDFs are created (existing CDFs are not modified.) Any + combination of the following properties may be changed when converting + a CDF. + + - A CDF created with an earlier release of the CDF library (e.g., CDF + V2.5) may be converted to the current library release. + - The format of the CDF may be changed. + - The data encoding of the CDF may be changed. + - The variable majority of the CDF may be changed. + +CDFdump + This program dumps the data contents from a CDF file, including data + and metadata as well as variable information (e.g. data type, + dimensionality, number of written records, blocking factor, etc.). + +CDFedit + This program allows the display and/or modification of practically all + of the contents of a CDF by way of a full-screen interface. It is also + possible to run CDFedit in a browse-only mode if that's desired. + +CDFexport + This program allows the entire contents or a portion of a CDF file to be + exported to the terminal screen, a text file, or another CDF. The + variables to be exported can be selected along with a filter range for + each variable which allows a subset of the CDF to be generated. + When exporting to another CDF, a new compression and sparseness can be + specified for each variable. When exporting to the terminal screen or + a text file, the format of the output can be tailored as necessary. + +CDFinquire + This program displays the version of the CDF distribution being used and + the default toolkit qualifiers. + +CDFirsdump + This program dumps the Inernal Records (IRs) in a CDF file. + +CDFleapsecondsinfo + This program shows how the leap seconds is referenced by the CDF library + and optioanlly displays the table contents. + +CDFmerge + This program merges multiple CDFs into a single one. + +CDFstats + This program produces a statistical report on a CDF's variable data. + Both rVariables and zVariables are analyzed. For each variable it + determines the actual minimum and maximum values (in all of the variable + records), the minimum and maximum values within the valid range (if the + VALIDMIN and VALIDMAX vAttributes and corresponding entries are present + in the CDF), and the monotonicity. An option exists to allow fill + values (specified by the FILLVAL vAttribute) to be ignored when + collecting statistics. + +CDFvalidate + This program validates if a given file is a valid CDF file. If it's a valid + CDF file, it check's the integrity of CDF internal data structures. + +SkeletonTable + This program is used to create an ASCII text file called a skeleton table + containing information about a given CDF (SkeletonTable can also be + instructed to output the skeleton table to the terminal screen.) It reads + a CDF file and writes into the skeleton table the following information. + + 1. Format (single or multi file), data encoding, variable majority. + 2. Number of dimensions and dimension sizes for the rVariables. + 3. gAttribute definitions (and gEntry values). + 4. rVariable and zVariable definitions and vAttribute definitions + (with rEntry/zEntry values). + 5. Data values for all or a subset of the CDF's variables. + Traditionally, only NRV variable values are written to a skeleton + table. RV variable values may now also be written. The above + information is written in a format that can be "understood" by the + SkeletonCDF program. SkeletonCDF reads a skeleton table and creates + a new CDF (called a skeleton CDF). + +SkeletonCDF + This program is used to make a fully structured CDF, called a skeleton + CDF, by reading a text file called a skeleton table. The skeleton table + contains the information necessary to create a CDF that is complete in + all respects except for record-variant (RV) var iable values. (RV + variables vary from record to record.) RV values are then written to the + CDF by the execution of an application program. The SkeletonCDF program + allows a CDF to be created with the following. + + 1. The necessary header information - the number of dimensions and + dimension sizes for the rVariables, format, data encoding, and + variable majority. + 2. The gAttribute definitions and any number of gEntries for each. + 3. The rVariable and zVariable definitions. + 4. The vAttribute definitions and the entries corresponding to each + variable. + 5. The data values for those variables that are non-record-variant + (NRV). NRV variables do not vary from record to record. + +CDF2CDFML + This program extracts the contents of a CDF file into a XML file that + conforms to the CDF DTD or schema (a.k.a CDF Markup Language). + +CDFML2CDF: + This program creates a CDF file from a XML/CDFML file that conforms to + the CDF DTD or schema. + + The XML parser, SAX, is required to run this program. Note that Sun's + JDK 1.4 or a later version includes a XML parser so you don't need to + download a XML parser. Java Virtual Machines (JVMs) from some vendors + don't include a XML parser. If that's the case, please download a XML + parser of your choice. + diff --git a/cdf38_1-dist/Release.notes b/cdf38_1-dist/Release.notes new file mode 100644 index 0000000..56792c6 --- /dev/null +++ b/cdf38_1-dist/Release.notes @@ -0,0 +1,160 @@ +/-----------------------------------/ +/ CDF V3.8.1.0 Release Notes / +/-----------------------------------/ + +1. Compatibility with all CDF 3.*, 2.7.6 and earlier versions + +CDF V3.8.1 is backward compatible with the previous versions of CDF, and it +can read CDF files that were created with earlier versions. + +If a file was created with CDF 2.7 and read and modified by CDF 3.*, the +resultant file will be saved in the CDF 2.7 format, not CDF 3.*. The same +principle applies to files that were created with CDF 2.5 and 2.6. CDF +files that are created from scratch with CDF V3.7.1 are compatible in file +structure with all CDF 3.*, but not compatible (due to a 64-bit file offsets +used since CDF 3.0 versions) with CDF 2.7.2 or earlier, and an attempt to +read CDF 3.* files from CDF 2.7.2 or earlier will produce an error. Since a +couple of new data types were added in V3.4, applications based on V3.3.* +and earlier will not be able access the V3.4 and later files if the files +have the data of those new types. However, if the files of V3.4 and later do +not contain data of the new data types, V3.*-based applications should have no +problems accessing them. + +Users of CDF 3.0 or later versions will be able to create CDF files that +can be read by CDF 2.7.2 or earlier by using the CDFsetFileBackward function +(in C) or CDF_set_FileBackward subroutine (in Fortran), or using the +CDF_FILEBACKWARD environment variable on Unix/Linux (including Mac OS X) or +PC, or CDF$FILEBACKWARD on OpenVMS. See Section 4.18 of the CDF C +Reference Manual and the CDF Fortran Reference Manual for details on how to +create CDF 2.7-compatible files. Note: There are a few new data types that are +only available in Version 3.1 and later, which can not be used in Version 2.*. + +All features added to the previous releases are included. Refer to the release +notes from the previous versions to view the specific features pertaining +to that release. + +2. Changes + +The following changes have been made/added in V3.8.1.* and prior versions: + + * Added support for ARM processor for Apple iOS (silicone) and other + platforms. + * The dynamic memory is no longer placed into a linked list. + * Added a couple of attribute entry read/write functions for string in + expanded standard interface. + * Allowed characters in UTF-8 encoding to be handled by the CDF. + * Allowed building fat JNI library from the main CDF build. + * Modified TT2000 type handling routine in C/Java to accept reverse leap + second (no 59 second) in the future. + * Added Json-CDF converters in Java package. + * Enhanced netCDF-to-CDF converter. + * Added a set of quick read functions/methods: READCDF and READVARIABLE, + to Java, Perl, C# and IDL interface to read CDF/Variable information in a + single call. + * Modified the CDF epoch breakdown functions that might cause incorrect + day being returned. + * Added a new option "-advformat" to tool program skeletontable to manage + how FORMAT attribute is used to encode the data and metadata. This option + will show data with more precision in the skeleton table. + * Modified code to use FILLVAL to fill the missing data if it exists, instead + of the pad value. + * String typed variable's pad value will only hold a single space and then + followed by NULs, instead of all spaces (for the number of elements). + * Modified skeletoncdf program to handle skeleton table with hidden character + carriage-return (\r) made from Windows. + * Added a few features to cdfconvert tool program. + * Added a few features to cdfconvert tool program. + * Modified skt2cdf to allow processing a skeleton table made in Windows + * to be used on non-Windows systems. + * Upgrade the zlib package to V2.1.11, which has code improvements and bug + * fixed. + * Added a set of time conversion functions between CDF_EPOCH, CDF_EPOCH16 + and CDF_TIME_TT2000 time and unix time. + * Added a new, general set of epoch encoding (toEncodexxxx) and parsing + toParsexxxx functions (where xxxx is EPOCH, EPOCH16 or TT2000) for each + of the CDF epoch data type. + * Expanded the CDF XML schema and allowed special characters used in + name. + * Encoded CDF epoch data in ISO8601 format, except skeleton table. + * Added ARM port. + * Added IA64 OpenVMS. + * Allowed Nul-terminting string data for attribute and variable data. + * Allowed multi-strings for variable attribute entries. + * Skip checksum verification if the data validation is turned off. + * Added cdfj.jar, the pure Java APIs that can read/write CDFs without + needing the CDF library and JNI. + * Revised the CDF schema to support new features. + * For Unix-based systems, "mkstemp" function is used to create the + temporary file in the template form of "mycdftmp.XXXXXX". + * For Unix-based systems, if CDF_TEMP is not defined, the temporary files + are created on the current directory (pwd), if it is writable. Otherwise, + environment variable: TMPDIR is used if it is defined. Otherwise, /tmp + directory is used. + * If adding data to a master file to create a new CDF, the leap second last + updated header field is updated with the information from the leap second + table if the data is of TT2000 data type. + * Added a new leap second for 1/1/2017. + * Added a new set of CDFread functions that will allocate the needed + space for the user. It is user's responsiblility to free the space after + use. + * New features were added in the cdfconvert, cdfdump tool programs. + * Modified library to space(s) filled string data that has a shorter + length than the defined (number of elements) while reading/writing. + * Modified Makefile and installation for Mac OS X El Captain (10.11). + * Used the preserved system temporary folder, e.g., /tmp for Linux/Unix/MacOSX, + to hold the temporary file(s). + * Set temporary file name using the random number generator with process id + and current time as the seed. + * Added support for computing TT2000 from UTC if the passed day is DOY + (day of the year from January 1st). + * Added a few options to cdfconvert tool program. + * Added a new leap second for 2015-07-01 to the leap second table. + * Added a new field "leapsecondlastupdated" in a CDF's GDR. This records + the leap second table a CDF is based upon. A set of read/write/validate + functions for the field is added to the library. + * Added a new record delete option in the library, which will rearrange + remaining records for sparse record variables. + * Skipped checking the given CDF file name for ASCII for reading. Only + enforce the file name to be ASCII, but not the directory portion, if + provided, for creating a CDF. + * Tool cdfconvert has a new option to sort the keyed variable, e.g., Epoch, + for the output file. + * Tool cdfconvert has a new option to validate a CDF, including the + variable data. + * A few bugs were fixed. + * Rename all CDF distributed MATLAB modules, prefixing each with "spdf", to + differentiate them with the ones come from MATLAB. + +Please refer to CHANGES.txt for the detailed code changes in various versions. + +3. How to Obtain the Latest Software + + Go to the CDF home page (http://cdf.gsfc.nasa.gov) and click the + Download CDF Software link. + + +4. Documentation + +The CDF documentation set consists of the following: + + cdf381ug.pdf (CDF User's Guide) + cdf381crm.pdf (CDF C Reference Manual) + cdf381frm.pdf (CDF Fortran Reference Manual) + cdf381prm.pdf (CDF Perl Reference Manual) + cdf381jrm.pdf (CDF Java Reference Manual) + cdf381csrm.pdf (CDF C# Reference Manual) + cdf381vbrm.pdf (CDF Visual Basic Reference Manual) + cdf38ifd.pdf (CDF Internal Format Description) + +These documents are available from the CDF home page (http://cdf.gsfc.nasa.gov). + +We have a user support office for CDF that you can contact when you need an +assistance. For requests, please send emails to: + + Internet -- NASA-CDF-Support@nasa.onmicrosoft.com + +Please let us know (via an email to CDFSUPPORT) if you get the distribution. +We would like to know who has the distribution so we know who to contact +when updates are available. + +CDFsupport diff --git a/cdf38_1-dist/Welcome.txt b/cdf38_1-dist/Welcome.txt new file mode 100644 index 0000000..5ed4524 --- /dev/null +++ b/cdf38_1-dist/Welcome.txt @@ -0,0 +1,10 @@ +This is the latest CDF V3.8.1 distribution package that contains everything +CDF offers except for the CDF Perl and C# APIs, and it contains the following +items: + + - CDF C, Fortran, and Java APIs + - C and Java version of the CDF tools. + +If you have any questions or comments, please send an email to +NASA-CDF-Support@nasa.onmicrosoft.com + diff --git a/cdf38_1-dist/cdfjava/JavaAPIs.txt b/cdf38_1-dist/cdfjava/JavaAPIs.txt new file mode 100644 index 0000000..f18cfb1 --- /dev/null +++ b/cdf38_1-dist/cdfjava/JavaAPIs.txt @@ -0,0 +1,2 @@ +Documentation for the CDF Java APIs can be found at +https://cdf.gsfc.nasa.gov/cdfjava_doc/index.html diff --git a/cdf38_1-dist/cdfjava/cdfjson/AAREADME.1ST b/cdf38_1-dist/cdfjava/cdfjson/AAREADME.1ST new file mode 100644 index 0000000..c7bd2d9 --- /dev/null +++ b/cdf38_1-dist/cdfjava/cdfjson/AAREADME.1ST @@ -0,0 +1,12 @@ +Files in the cdfjson.tar archive... +----------------------------------------------------------- + +cdfjson.jar: The Java archive file that contains CDF2Json, Json2CDF and + CDFJsonReader Java tool programs. This file is located in + lib directory. + +AAREADME.1ST: This is file that you are browsing. + +Readme.txt: This file contains the information on how to install and + run the Java-based CDF-Json conveter programs. + diff --git a/cdf38_1-dist/cdfjava/cdfjson/CDF2Json.java b/cdf38_1-dist/cdfjava/cdfjson/CDF2Json.java new file mode 100644 index 0000000..5c23a46 --- /dev/null +++ b/cdf38_1-dist/cdfjava/cdfjson/CDF2Json.java @@ -0,0 +1,2075 @@ +/***************************************************************************** +* Copyright 1996-2013 United States Government as represented by the +* Administrator of the National Aeronautics and Space Administration. +* All Rights Reserved. +******************************************************************************/ + +import java.io.*; +import java.text.*; +import java.util.*; +import java.lang.*; +import java.lang.reflect.*; +import gsfc.nssdc.cdf.*; +import gsfc.nssdc.cdf.util.*; +import javax.json.*; + +/**************************************************************************** + Description: + This program exports the contents of a CDF file(s) into a Json file + + For single CDF file, the file is specified at the last of the auguments. + The name of the input CDF file is used as the default output file name. + Alternatively, use "fileNames" option to specify the CDf file(s) for + conversions. + + Usage: java CDF2Json [Options] [cdfFileName] + + Options: + + -fileNames:fileNames + fileNames: specifies a text file that contains the names of CDF files + for converting into a single Json file. + If this option is used, there is no need for entering + cdfFileName + + -globalAttrs:[yes | no] -globalAttrs:yes is the default. + -globalAttrs:yes extracts all global attributes + -globalAttrs:no doesn't extract global attributes + + -varAttrs:[yes | no] -varAttrs:yes is the default. + -varAttrs:yes extracts each variable's attributes + -varAttrs:no doesn't extract each variable's attributes + + -vars:var1,var2,... + -vars:var1,var2,... extracts only the specified variables with + variable names separated by a single comma + + -varData:[yes | no] -varData:yes is the default. + -varData:yes extracts each variable's data + -varData:no doesn't extract each record-varying variable's data + + -output:[outputFileName | STDOUT] + outputFileName: The output Json file name. An extension of ".json" + is appended if it is not specified. If this option is + not specified, the input cdfFileName for a single file + or fileNmaes for a group of files is used for the + output Json file name. + -output:STDOUT displays the Json output on the screen. + + -format:[yes | no | prefer] -format:prefer is the default. + -format:yes uses the variable's FORMAT attribute to encode the data + -format:prefer uses the variable's FORMAT attribute to encode the data + However, if the FORMAT is not properly defined, it is + not used. + -format:no uses the general Java data encoding form + + -encodeepoch:[yes | no] -encodeepoch:yes is the default. + -encodeepoch:yes encodes the CDF epoch data + -encodeepoch:no shows the CDF epoch data in its original form + + -[showProgress | Progress] + This option displays the processing progress on the screen. + It shows how many CDF variables are there to process and which + variable is being processed. + + -withZ + This option works with CDF epoch data by adding an extra "Z" to + the end of date/time of ISO 8601 form. + + -delete + Over-ride the existing Json file. + + -debug + Display the specifications to run the application. + + -nofullpath + Specifies to use only the file name portion of the entered path name + for each CDF in the Json file. + + -showfile + Specifies to display the CDF file name(s) being processed. + + The Json file, produced from CDF2Json class, has the following form. It + differs slightly from the origial converter, which only handled a single + CDF. The CDFname is a part in CDFFileInfo attribute. + +
 
+ CDFname1:    <== CDF file name key
+   CDFFileInfo:
+     FileVersion:.....
+     Format:.....
+     Majority:...
+     Encoding:.....
+   CDFglobalAttributes:
+     Gattr_name1:
+       entry#:value
+       ...
+       ...
+     Gattr_name2:
+       entry#:value
+       ...
+       ...
+   ...
+   ...
+   CDFVariables:
+     VarName1:  <== Variable name key
+       VarDescription:
+         DataType:....
+         ...
+         ...
+       VarAttributes:
+         VALIDMIN:....
+         VALIDMAX:....
+         ...
+         ...
+       VarData:
+       ...
+     VarName2:
+       VarDescription:
+         DataType:....
+         ...
+         ...
+       VarAttributes:
+         VALIDMIN:....
+         VALIDMAX:....
+         ...
+         ...
+       VarData:
+         ...
+   EmptyAttributes:  <== Exists if there are defined attributes but no values
+     GlobalAttributes: [...]
+     VariableAttributes: [...]
+
+ CDFname2:
+   ...
+   ...
+ ... 
+ ...
+ 
+ + This class is based on JNI-based cdfjava.jar and javax.json.jar. + + HISTORY: + Jan 30, 2022 Mike Liu Initial version. + *****************************************************************************/ + +public class CDF2Json implements CDFConstants { + + private static CDF cdf = null; + private static boolean debug = false; + + private static String inFile = null, /* Input file name */ + outFile = null, /* Output file name */ + varData = "yes", /* Extract variable data */ + globalAttrs = "yes",/* Extract global attributes */ + format = "prefer", /* Use FORMAT attribute */ + encodeEpoch = "yes",/* Encode epoch data */ + varAttrs = "yes"; /* Extract variable attributes */ + + private static boolean showProgress = false; + private static boolean withz = false; + private static boolean delete = false; + private static boolean fullpath = true; + private static boolean encodeEp = true; + private static boolean showfile = false; + private static JsonObjectBuilder CDFJsonObject0 = Json.createObjectBuilder(); + private static JsonObjectBuilder CDFJsonObject = null; + private static int varCount = -1; + private static String[] varNames; + private static String[] fileNames = null; + private static int numFiles = 0; + private static String item0 = "CDF"; + private static String item1 = "CDFFileInfo"; + private static String item2 = "CDFglobalAttributes"; + private static String item3 = "CDFVariables"; + private static String item4 = "VarDescription"; + private static String item5 = "VarAttributes"; + private static String item6 = "VarData"; + private static String item7 = "EmptyAttributes"; + private static String item8 = "GlobalAttributes"; + private static String item9 = "VariableAttributes"; + private static String separator = System.getProperty("file.separator"); +private static long numDimsN; + public static void main(String[] args) throws Exception { + + try { + parseCmdLine(args); + + if (outFile == null) + outFile = getDefaultOutputFileName(); + + if (!delete) { + if (new File(outFile).exists()) { + System.out.println("ERROR... output file:"+outFile+ + " already exists. "); + System.exit(1); + } + } + int ix; + for (ix = 0; ix < numFiles; ++ix) { + String originalInputFilename = fileNames[ix]; + if (showfile) System.out.println(fileNames[ix]); + cdf = CDF.open(originalInputFilename, READONLYoff); + + CDFJsonObject = Json.createObjectBuilder(); + JsonArrayBuilder two = printCDFFileInfo(originalInputFilename); + if (two != null) + CDFJsonObject.add (item1, two); + + if (globalAttrs.equalsIgnoreCase("yes")) { + JsonArrayBuilder three = printGlobalAttributes(); + + if (three != null) + CDFJsonObject.add (item2, three); + } + + JsonArrayBuilder four = printVariables(); + if (four != null) + CDFJsonObject.add (item3, four); + + JsonArrayBuilder five = printEmptyAttributes(); + if (five != null) + CDFJsonObject.add (item7, five); + + cdf.close(); + + String cdfnameKey = null; + if (fullpath) + cdfnameKey = (!originalInputFilename.endsWith(".cdf") && + !originalInputFilename.endsWith(".CDF")) ? + originalInputFilename+".cdf" : + originalInputFilename; + else { + int loc = originalInputFilename.lastIndexOf(separator); + if (loc == -1) + cdfnameKey = (!originalInputFilename.endsWith(".cdf") && + !originalInputFilename.endsWith(".CDF")) ? + originalInputFilename+".cdf" : + originalInputFilename; + else { + String filenamex = originalInputFilename.substring(loc+1); + cdfnameKey = (!filenamex.endsWith(".cdf") && + !filenamex.endsWith(".CDF")) ? + filenamex+".cdf" : filenamex; + } + } + CDFJsonObject0.add (cdfnameKey, CDFJsonObject); + } + OutputStream os = new FileOutputStream(outFile); + JsonWriter jsonWriter = Json.createWriter(os); + jsonWriter.writeObject(CDFJsonObject0.build()); + jsonWriter.close(); + + } catch (Exception e) { + if (cdf != null) cdf.close(); + System.out.println ("Exception occurred in main.\n"+e); + } + } + + + /*********************************************************/ + /* Parse the command line input that is in the form of */ + /* java CDF2Json [Options] cdfFileName */ + /* */ + /* See the top of this file for a detailed description */ + /* of the Options. */ + /*********************************************************/ + private static void parseCmdLine (String[] args) { + String numSpaces = null; + int which = 0; + String[] tmpArr = new String[100]; + + if (args.length == 0) // No input is given (i.e. java CDF2Json) + exit(""); + + else { // Process options + for (int i=0; i < args.length; i++) { + if (args[i].indexOf(":") == -1 && + args[i].charAt(0) != '-') { + if (which == 0) which = 1; + if (which == 1) { + tmpArr[numFiles] = args[i]; + ++numFiles; + if (!CDFUtils.cdfFileExists(args[i])) { + System.out.println ("** Error: file '"+args[i]+ + "' does not exist **"); + System.exit (1); + } + if (numFiles == 1) inFile = args[i]; + continue; + } else { + System.out.println("** Error: File(s) already specified"+ + " in option \"fileNames\"..."); + System.exit(1); + } + } + int loc = args[i].indexOf(":"); + if (args[i].toLowerCase().startsWith("-filenames:")) { + if (which == 0) which = 2; + if (which == 2) { + String fileTxt = args[i].substring(loc+1); + if (fileTxt.toLowerCase().endsWith(".txt")) + inFile = fileTxt.substring(0, fileTxt.length()-4); + else if (fileTxt.toLowerCase().endsWith(".text")) + inFile = fileTxt.substring(0, fileTxt.length()-5); + else + inFile = fileTxt; + readFileNames (fileTxt); + } else { + System.out.println("** Error: File(s) already "+ + "specified in the command line..."); + System.exit(1); + } + } + else if (args[i].toLowerCase().startsWith("-vardata:")) { + varData = args[i].substring(loc+1); + if (!varData.equalsIgnoreCase("yes") && + !varData.equalsIgnoreCase("no")) + exit("** Error: Invalid -varData entered **"); + } + else if (args[i].toLowerCase().startsWith("-globalattrs:")) { + globalAttrs = args[i].substring(loc+1); + if (!globalAttrs.equalsIgnoreCase("yes") && + !globalAttrs.equalsIgnoreCase("no")) + exit("** Error: Invalid -globalattrs entered **"); + } + else if (args[i].toLowerCase().startsWith("-varattrs:")) { + varAttrs = args[i].substring(loc+1); + if (!varAttrs.equalsIgnoreCase("yes") && + !varAttrs.equalsIgnoreCase("no")) + exit("** Error: Invalid -varattrs entered **"); + } + else if (args[i].toLowerCase().startsWith("-format:")) { + format = args[i].substring(loc+1); + if (!format.equalsIgnoreCase("yes") && + !format.equalsIgnoreCase("no") && + !format.equalsIgnoreCase("prefer")) + exit("** Error: Invalid -format entered **"); + } + else if (args[i].toLowerCase().startsWith("-encodeepoch:")) { + encodeEpoch = args[i].substring(loc+1); + if (!encodeEpoch.equalsIgnoreCase("yes") && + !encodeEpoch.equalsIgnoreCase("no")) + exit("** Error: Invalid -encodeepoch entered **"); + else { + if (encodeEpoch.equalsIgnoreCase("no")) + encodeEp = false; + } + } + else if (args[i].toLowerCase().startsWith("-vars:")) { + String names = args[i].substring(6); + int e; + varCount = 1; + for (e = 0; e < names.length(); e++) { + if (names.charAt(e) == ',') varCount++; + } + varNames = new String[varCount]; + StringBuffer tmp = new StringBuffer(names); + for (e = 0; e < varCount; ++e) { + int dstr = tmp.indexOf(","); + if (dstr != -1) { + varNames[e] = tmp.substring(0, dstr).toString(); + tmp = new StringBuffer(tmp.substring(dstr+1)); + } else { + varNames[e] = new String(tmp); + } + } + } + else if (args[i].toLowerCase().startsWith("-output:") || + args[i].toLowerCase().startsWith("-json:")) { + outFile = args[i].substring(loc+1); + if (outFile.equalsIgnoreCase("stdout")) + outFile = "STDOUT"; + else { + if (!outFile.toLowerCase().endsWith(".json")) + outFile = outFile + ".json"; + } + } + else if (args[i].equalsIgnoreCase("-showprogress") || + args[i].equalsIgnoreCase("-progress")) { + showProgress = true; + } + else if (args[i].equalsIgnoreCase("-withz")) { + withz = true; + } + else if (args[i].toLowerCase().startsWith("-debug")) { + debug = true; + } + else if (args[i].equalsIgnoreCase("-delete")) { + delete = true; + } + else if (args[i].equalsIgnoreCase("-nofullpath")) { + fullpath = false; + } + else if (args[i].equalsIgnoreCase("-showfile")) { + showfile = true; + } + else { + exit ("** Error: Invalid option entered **"); + } + } + } + if (debug) { + for (int i=0; i < args.length; i++) + System.out.println ("args["+i+"] = "+args[i]); + System.out.println ("inFile="+inFile+", outputFile="+outFile+ + ", globalattrs= "+globalAttrs+ + ", varAttrs= "+varAttrs+ + ", vars= all"+ + ", vardata= "+varData+ + ", showProgress="+showProgress+ + ", withz="+withz+ + ", showfile="+showfile+ + ", delete="+delete); + } + + if (inFile == null) exit ("** Error: CDF file name not specified **"); + + if (which == 1) { + fileNames = new String[numFiles]; + System.arraycopy(tmpArr, 0, fileNames, 0, numFiles); + } + + } + + + /************************************************************************ + * If a compression is specified, print the compression type and its + * compression level. The compression level is printed only if + * the compression method is GZIP. + ************************************************************************/ + private static String printCompression (long cType, + long[] compressionLevel) { + if (cType != CDFConstants.NO_COMPRESSION) { + String compression = CDFUtils.getStringCompressionType(cType); + if (cType != CDFConstants.GZIP_COMPRESSION) + return compression; + else + return compression+"."+compressionLevel[0]; + } else + return null; + } + + + /************************************/ + /* Print the CDF file information */ + /************************************/ + private static JsonArrayBuilder printCDFFileInfo (String theFile) { + try { + String version = cdf.getVersion(); + String fileFormat = CDFUtils.getStringFormat(cdf); + String majority = CDFUtils.getStringMajority(cdf); + String encoding = CDFUtils.getStringEncoding(cdf); + String checksum = CDFUtils.getStringChecksum(cdf); + long lastUpdated = CDFUtils.getLeapSecondLastUpdated(cdf); + + JsonArrayBuilder infos = Json.createArrayBuilder(); + + JsonObjectBuilder versionO = Json.createObjectBuilder(). + add("FileVersion", version); + infos.add(versionO.build()); + + JsonObjectBuilder formatx = Json.createObjectBuilder().add("Format", + fileFormat); + infos.add(formatx.build()); + + long cType = cdf.getCompressionType(); + long[] compressionLevel = cdf.getCompressionParms(); + String comp = printCompression(cType, compressionLevel); + if (comp != null) { + JsonObjectBuilder compress = Json.createObjectBuilder(). + add("Compression", comp); + infos.add(compress.build()); + } + + JsonObjectBuilder majorityO = Json.createObjectBuilder(). + add("Majority", majority); + infos.add(majorityO.build()); + + JsonObjectBuilder encodingO = Json.createObjectBuilder(). + add("Encoding", encoding); + infos.add(encodingO.build()); +/* + long negToPosFp0 = cdf.confirmNegtoPosfp0(); + String enable; + if (negToPosFp0 == CDFConstants.NEGtoPOSfp0on) + enable = "ENABLE"; + else + enable = "DISABLE"; + JsonObjectBuilder negToPosFp = Json.createObjectBuilder(). + add("NegToPosFp0", enable); + infos.add(negToPosFp.build()); + + if (!checksum.equalsIgnoreCase("none") && + !checksum.equalsIgnoreCase("other")) { + JsonObjectBuilder chksum = Json.createObjectBuilder(). + add("checksum", checksum); + infos.add(chksum.build()); + } + + if (lastUpdated > -1) { + long yy, mm, dd; + yy = (long) (lastUpdated / 10000); + mm = (long) ((lastUpdated - yy * 10000) / 100); + dd = lastUpdated - yy * 10000 - mm * 100; + JsonObjectBuilder leap = Json.createObjectBuilder().add( + "LeapsecondLastUpdated",yy+"-"+ + (mm<10?"0":"")+mm+"-"+(dd<10?"0":"")+dd); + infos.add(leap.build()); + } +*/ + return infos; + + } catch (Exception e) { + System.out.println ("** Error occurred in printCDFFileInfo"); + System.out.println (e); + System.exit (1); + } + return null; + } + + + /*************************************/ + /* Print the CDF global attributes */ + /*************************************/ + private static JsonArrayBuilder printGlobalAttributes () { + try { + Attribute a = null; + String attrName = null; + int i; + long numAttrs = cdf.getNumGattrs(); + Vector ga = cdf.getGlobalAttributes(); + + if (numAttrs > 0) { + JsonArrayBuilder entries = Json.createArrayBuilder(); + JsonArrayBuilder globals = Json.createArrayBuilder(); + for (Enumeration e = ga.elements() ; e.hasMoreElements() ;) { + a = (Attribute) e.nextElement(); + attrName = a.getName(); + long n = a.getNumEntries(); + if (n == 0) continue; + Vector ent = a.getEntries(); + int iflag; + for (Enumeration e1=ent.elements(); e1.hasMoreElements();) { + Entry entry = (Entry) e1.nextElement(); + if (entry != null) { + long eDataType = entry.getDataType(); + long eNumElems = entry.getNumElements(); + Object data = entry.getData(); + if (eDataType == CDF_EPOCH) iflag = 1; + else if (eDataType == CDF_EPOCH16) iflag = 2; + else if (eDataType == CDF_TIME_TT2000) iflag = 3; + else iflag = 0; + String entryID = String.valueOf(entry.getID()); + JsonObjectBuilder entryO = Json.createObjectBuilder(); + entryO = (JsonObjectBuilder) printSingleData ( + (Object) entryO, entryID, data, + eDataType, eNumElems, -1, + (withz?"Z":""), null, null, false); + entries.add(entryO.build()); + } + } + JsonObjectBuilder global1 = Json.createObjectBuilder(). + add(attrName, entries); + globals.add(global1.build()); + } + return globals; + } + + } catch (Exception e) { + System.out.println ("** Error occurred in printGlobalAttributes"); + System.out.println (e); + System.exit (1); + } + return null; + } + + + /************************************************************************* + * Print the following information for each variable in a CDF file: + * - variable information (e.g. dimensionality, dimesnion sizes, etc.) + * - variable attributes + * - variable data + ************************************************************************/ + private static JsonArrayBuilder printVariables () { + + long numVars = 0; + Variable v = null; + + try { + int i = 1; + numVars = cdf.getNumVars(); + + if (numVars > 0) { + JsonArrayBuilder variables = Json.createArrayBuilder(); + + Vector vars = cdf.getVariables(); + String cFormat = null; + + for (Enumeration e = vars.elements() ; e.hasMoreElements() ;) { + v = (Variable) e.nextElement(); + String varName = v.getName(); + Object fillVal = null; + if (!format.toLowerCase().equals("no")) { + String formatA; + try { + String format0 = (String) v.getEntryData("FORMAT"); + if (format0.trim().length() == 0) formatA = null; + else formatA = format0.trim(); + } catch (CDFException xx) { + formatA = null; + } + if (formatA != null) cFormat = toCformat(formatA); + } + try { + fillVal = v.getEntryData("FILLVAL"); + } catch (CDFException xx) { + try { + fillVal = v.getPadValue(); + } catch (CDFException xy) { + fillVal = null; + } + } + boolean toPrint = true; + if (varCount > 0) { + toPrint = false; + for (int jj = 0; jj < varCount; ++jj) { + if (varName.equals(varNames[jj])) { + toPrint = true; + break; + } + } + } + if (toPrint) { + if (showProgress) { + long maxRec = v.getMaxWrittenRecord() + 1; + System.out.print ("Variable "+i+": "+varName+" of "+ + (varCount>0?varCount:numVars)+ + " ("+(maxRec<10?" ":"")+maxRec+ + " records): "); + i++; + } + JsonArrayBuilder variable = Json.createArrayBuilder(); + JsonObjectBuilder variableO = Json.createObjectBuilder(); + JsonArrayBuilder one = printVarInfo(v, cFormat); + if (one != null) + variable.add(Json.createObjectBuilder(). + add(item4, one).build()); + if (varAttrs.equalsIgnoreCase("yes")) { + JsonArrayBuilder two = printVarAttributes(v, cFormat, + fillVal); + if (two != null) + variable.add(Json.createObjectBuilder(). + add(item5, two).build()); + } + if (varData.equalsIgnoreCase("yes") || + !(v.getRecVariance())) { + JsonArrayBuilder three = printVarData(v, cFormat, + fillVal); + if (three != null) + variable.add(Json.createObjectBuilder(). + add(item6, three).build()); + } +// variableO.add("Variable", variable); + variableO.add(varName, variable); + variables.add(variableO); + } + } + return variables; + } + + } catch (Exception e) { + System.out.println ("** Error occurred in printVariables"); + System.out.println ("** # of variables: "+numVars); + System.out.println ("** variable: "+v.getName()); + System.out.println (e); + System.exit (1); + } + return null; + } + + + /************************************************************************* + * Print the CDF variable information. + ************************************************************************/ + private static JsonArrayBuilder printVarInfo (Variable v, String formatV) { + try { + String recVariance, sparseRecord, variance; + int i; + long dataType, numDims, numElements, blockingFactor; + long numRecords, maxWrittenRec; + long[] dimSizes = {1L}, dimVariances; + Object padValue = null; + String varName, strDataType; + + JsonArrayBuilder infos = Json.createArrayBuilder(); +/* + varName = v.getName(); + JsonObjectBuilder vn = Json.createObjectBuilder(). + add("VarName",varName); + infos.add (vn.build()); + if (showProgress) { + System.out.print (varName); + } +*/ + dataType = v.getDataType(); + strDataType = CDFUtils.getStringDataType(dataType); + JsonObjectBuilder vd = Json.createObjectBuilder(). + add("DataType",strDataType); + infos.add (vd.build()); + if (showProgress) { + if (v.getName().length() < 9) + System.out.print ("\t\t"+strDataType+"/"); + else + System.out.print ("\t"+strDataType+"/"); + } + + numElements = v.getNumElements(); + JsonObjectBuilder ne = Json.createObjectBuilder(). + add("NumElements",numElements); + infos.add (ne.build()); + if (showProgress) { + System.out.print (numElements); + if (dataType == CDF_TIME_TT2000) System.out.print (" "); + else System.out.print ("\t"); + } + + numDims = v.getNumDims(); + dimSizes = v.getDimSizes(); + dimVariances = v.getDimVariances(); + +// long numDimsN; + long[] dimSizesN = new long[(int)CDF_MAX_DIMS]; + numDimsN = 0; + for (i = 0; i < numDims; i++) { + if (dimVariances[i] == CDFConstants.VARY && + dimSizes[i] > 1) { + dimSizesN[(int)numDimsN] = dimSizes[i]; + ++numDimsN; + } + } + JsonObjectBuilder nd = Json.createObjectBuilder(). + add("NumDims",numDimsN); + infos.add (nd.build()); + if (showProgress) + System.out.print (numDimsN+":["); + if (numDimsN > 0) { + JsonObjectBuilder ds = Json.createObjectBuilder(); + JsonArrayBuilder dsO = Json.createArrayBuilder(); + for (i=0; i < numDimsN; i++) { + if (i > 0) { + if (showProgress) + System.out.print (","); + } + dsO.add(dimSizesN[i]); + if (showProgress) + System.out.print (dimSizesN[i]); + } + ds.add("DimSizes",dsO); + infos.add (ds.build()); + } + if (showProgress) + System.out.print ("] "+(numDims==0?" ":"")); + + recVariance = v.getRecVariance() ? "VARY" : "NOVARY"; + JsonObjectBuilder rv = Json.createObjectBuilder(). + add("RecVariance",recVariance); + infos.add (rv.build()); + if (showProgress) { + if (recVariance.equalsIgnoreCase("vary")) + System.out.print ("T/"); + else + System.out.print ("F/"); + } + + if (numDimsN > 0) { + JsonObjectBuilder dv = Json.createObjectBuilder(); + JsonArrayBuilder dvO = Json.createArrayBuilder(); + for (i=0; i < numDimsN; i++) { + dvO.add("VARY"); + if (showProgress) { + System.out.print ("T"); + } + } + dv.add("DimVariances",dvO); + infos.add (dv.build()); + } + + if (showProgress) System.out.println (""); + + long cType = v.getCompressionType(); + long[] compressionLevel = v.getCompressionParms(); + String comp = printCompression (cType, compressionLevel); + if (comp != null) { + JsonObjectBuilder compO = Json.createObjectBuilder(). + add("Compression",comp); + infos.add (compO.build()); + } + + numRecords = v.getNumWrittenRecords(); + sparseRecord = CDFUtils.getStringSparseRecord(v); + if (sparseRecord.equalsIgnoreCase("none")) { + if (numRecords > 0) { + JsonObjectBuilder nw = Json.createObjectBuilder(). + add("NumWrittenRecords", + numRecords); + infos.add (nw.build()); + } + } + else { + maxWrittenRec = v.getMaxWrittenRecord(); + JsonObjectBuilder sr = Json.createObjectBuilder(). + add("SparseRecords",sparseRecord); + infos.add (sr.build()); + JsonObjectBuilder nw = Json.createObjectBuilder(). + add("NumWrittenRecords",numRecords); + infos.add (nw.build()); + JsonObjectBuilder mw = Json.createObjectBuilder(). + add("MaxWrittenRec",maxWrittenRec); + infos.add (mw.build()); + + } + + if (v.checkPadValueExistence()) { // Pad value has been defined + JsonObjectBuilder pv = Json.createObjectBuilder(); + padValue = v.getPadValue(); + pv = (JsonObjectBuilder) printSingleData ((Object)pv, + "PadValue", padValue, dataType, + numElements, -1, (withz?"Z":""), + formatV, null, false); + infos.add (pv.build()); + } + + blockingFactor = v.getBlockingFactor(); + if (blockingFactor > 0) { + JsonObjectBuilder bf = Json.createObjectBuilder(). + add("BlockingFactor",blockingFactor); + infos.add (bf.build()); + } + return infos; + + } catch (Exception e) { + System.out.println ("** Error occurred in printVariables"); + System.out.println (e); + System.exit (1); + } + return null; + } + + + /************************************************************************* + * Print the CDF variable attributes + ************************************************************************/ + private static JsonArrayBuilder printVarAttributes (Variable v, + String formatT, + Object fillVal) { + Attribute a = null; + Entry entry = null; + String attrName = null; + + try { + /************************************************************** + Check and see if there are any variable attributes that + are associated with the passed Variable. + **************************************************************/ + Vector va = v.getAttributes(); + if (va.size() == 0) return null; + long vDataType = v.getDataType(); + /*******************************************/ + /* Process and print variable attributes */ + /*******************************************/ + JsonArrayBuilder entries = Json.createArrayBuilder(); + for (Enumeration e=va.elements(); e.hasMoreElements();) { + a = (Attribute) e.nextElement(); + attrName = a.getName(); + try { + entry = a.getEntry(v); + if (entry != null) { + long eDataType = entry.getDataType(); + long eNumElements = entry.getNumElements(); + Object data = entry.getData(); + JsonObjectBuilder entryO = Json.createObjectBuilder(); + entryO = (JsonObjectBuilder) printSingleData ( + (Object)entryO, attrName, data, + eDataType, eNumElements, vDataType, + (withz?"Z":""), formatT, fillVal, + false); + entries.add (entryO.build()); + } + } catch (CDFException ex) { + } + } + return entries; + + + } catch (Exception e) { + System.out.println ("** Error occurred in printVarAttributes"); + System.out.println ("attr= "+attrName+" entry ="+entry.getName()); + System.out.println (e); + System.exit (1); + } + return null; + } + + + /************************************************************************* + * Print the empty attributes. + ************************************************************************/ + private static JsonArrayBuilder printEmptyAttributes () { + + Vector gAttributes = cdf.getGlobalAttributes(); + Vector vAttributes = cdf.getVariableAttributes(); + JsonArrayBuilder eattrs = null; + JsonArrayBuilder gattrs = null; + JsonArrayBuilder vattrs = null; + + int ix; + ix = 0; + for (Enumeration e=gAttributes.elements(); e.hasMoreElements();) { + Attribute a = (Attribute)e.nextElement(); + long num = a.getNumEntries(); + if (num != 0) continue; + ++ix; + if (ix == 1) { + gattrs = Json.createArrayBuilder(); + } +// JsonObjectBuilder eg = Json.createObjectBuilder(). +// add(a.getName(),null); + gattrs.add(a.getName()); + } + if (ix != 0) { + eattrs = Json.createArrayBuilder(); + eattrs.add(Json.createObjectBuilder().add("GlobalAttributes", + gattrs).build()); + } + + ix = 0; + for (Enumeration e=vAttributes.elements(); e.hasMoreElements();) { + Attribute a = (Attribute)e.nextElement(); + long num = a.getNumEntries(); + if (num != 0) continue; + ++ix; + if (ix == 1) { + vattrs = Json.createArrayBuilder(); + } +// JsonObjectBuilder eg = Json.createObjectBuilder(). +// add(a.getName(),null); + vattrs.add(a.getName()); + } + if (ix != 0) { + if (eattrs == null) + eattrs = Json.createArrayBuilder(); + eattrs.add(Json.createObjectBuilder().add("VariableAttributes", + vattrs).build()); + } + + return eattrs; + } + + /************************************************************************* + * Print the variable data. + ************************************************************************/ + private static JsonArrayBuilder printVarData (Variable v, String formatT, + Object fillVal) { + try { + long maxRec, numDims, numElements, numValuesToRead, dataType; + long recCount; + boolean recVary; + long[] dimSizes = {1L}, dimVariances; + long[] dimIndices = {0L}; + long[] dimIntervals = {1L}; +// long numDimsN = 0; + long[] dimSizesN = null; + maxRec = v.getMaxWrittenRecord(); + + /******************************************************* + if varData = "no", do not extract variable data. + if maxRec < 0, then the variable doesn't have data. + ********************************************************/ + if (maxRec < 0) { + return null; + } + + recVary = v.getRecVariance(); + numDims = v.getNumDims(); + dimSizes = v.getDimSizes(); + numElements = v.getNumElements(); + dataType = v.getDataType(); + dimVariances = v.getDimVariances(); + numValuesToRead = 1; +/* + if (numDims > 0) { + dimIntervals = new long[dimSizes.length]; + dimIndices = new long[dimSizes.length]; + dimSizesN = new long[dimSizes.length]; + int j = 0; + numDimsN = 0; + for (int i=0; i < dimSizes.length; i++) { + if (dimVariances[i] == VARY) { + ++numDimsN; + dimSizesN[j] = dimSizes[i]; + ++j; + } + dimIntervals[i] = 1; + dimIndices[i] = 0; + numValuesToRead *= dimSizes[i]; + } + } +*/ + if (numDimsN > 0) { + dimIntervals = new long[(int)numDimsN]; + dimIndices = new long[(int)numDimsN]; + dimSizesN = new long[(int)numDimsN]; + int j = 0; +// numDimsN = 0; + for (int i=0; i < numDimsN; i++) { + if (dimVariances[i] == VARY) { +// ++numDimsN; + dimSizesN[j] = dimSizes[i]; + ++j; + } + dimIntervals[i] = 1; + dimIndices[i] = 0; + numValuesToRead *= dimSizes[i]; + } + } + + JsonArrayBuilder records = Json.createArrayBuilder(); + + /********************************************************/ + /* maxRec represents the last record number for this */ + /* variable, not the number of records. */ + /* */ + /* NOTE: maxRec starts at 0, so if the value of maxRec */ + /* is 2, the actual number of records is 3. */ + /* If there are no records exists, the value of */ + /* maxRec is -1. */ + /********************************************************/ + long incrementCounter, numRecordsToRead, recNo; + long sparseRecord = v.getSparseRecords(); + + if (sparseRecord == NO_SPARSERECORDS) + incrementCounter = (numDimsN == 0 ? 1000 : 200); + else + incrementCounter = 1; + CDFData cdfdata; + for (int i=0; i <= maxRec; i+=incrementCounter) { + if ((i+incrementCounter) > maxRec) + numRecordsToRead = maxRec - i + 1; + else + numRecordsToRead = incrementCounter; + if (numDimsN > 0) { + cdfdata = v.getHyperDataObject((long) i, + numRecordsToRead, 1L, + dimIndices, + dimSizes, + dimIntervals); + } else { + cdfdata = v.getRecordsObject((long) i, + numRecordsToRead); + } + // Get the status of the last CDF call + long status = cdf.getStatus(); + Object dataArray = cdfdata.getData(); + for (int j=0; j < numRecordsToRead; j++) { + Object datum; + if (numRecordsToRead > 1) { + if (dataType != CDF_EPOCH16) + datum = Array.get(dataArray, j); + else { + double[] epoch16 = new double[2]; + epoch16[0] = ((Double) Array.get(dataArray, 2*j)). + doubleValue(); + epoch16[1] = ((Double) Array.get(dataArray, 2*j+1)). + doubleValue(); + datum = (Object) epoch16; + } + } else + datum = dataArray; + + if (numDimsN > 0 && numDims != numDimsN) { + // Filled data for non-varying dimension(s) + long iz; + iz = numDims; + while (iz != numDimsN) { + datum = Array.get(datum, 0); + --iz; + } + } + + if (numDimsN < 2) { + boolean single = false; + if (!recVary || maxRec == 0) single = true; + records = (JsonArrayBuilder) printSingleData ( + (Object)records, null, + datum, dataType, numDimsN, + -1, (withz?"Z":""), formatT, + fillVal, single); + } else { + JsonArrayBuilder oData = printMultipleData (datum, + dataType, (int)numDimsN, + dimSizes, + (withz?"Z":""), formatT, + fillVal); + if (!recVary || maxRec == 0) return oData; + else records.add (oData); + } + } // end of for (int j=0; j < numRecordsToRead; j++) + + } // end of "for (int i=0; i <= maxRec; i++)" + return records; + + } catch (Exception e) { + System.out.println ("** Error occurred in printVarData"); + System.out.println ("variable: "+v.getName()); + System.out.println (e); + System.exit (1); + } + return null; + } + + + /************************************************************************* + * This method returns the output file name if one is not provided + * through the -output option from the command line. + ************************************************************************/ + private static String getDefaultOutputFileName () { + String fileName; + int loc1 = inFile.lastIndexOf(".cdf"); + int loc2 = inFile.lastIndexOf(".CDF"); + boolean extCDF = inFile.endsWith(".cdf") || + inFile.endsWith(".CDF"); + + // Input file name given from the command line doesn't have + // .cdf or .CDF extension in it. + if (!extCDF) + fileName = inFile + ".json"; + + else { // Remove the .cdf or .CDF extension + if (loc1 != -1) { + fileName = inFile.substring(0,loc1); + fileName = fileName + ".json"; + } + else { + fileName = inFile.substring(0,loc2); + fileName = fileName + ".json"; + } + } + if (!fullpath) { + int loc = fileName.lastIndexOf(separator); + if (loc != -1) + fileName = fileName.substring(loc+1); + } + return fileName; + } + + + /************************************************************************* + * This method removes the file path from the given file name and + * returns the file name. + ************************************************************************/ + private static String removeFilePath (String fileName) { + int loc = fileName.lastIndexOf(separator); + fileName = fileName.substring(loc+1); + + return fileName; + } + + + /************************************************************************* + * If an invalid option is entered from the command line, this routine + * is invoked to print an appropriate message followed by its proper + * syntax. + ************************************************************************/ + private static void exit (String msg) { + if (!msg.equals("")) System.out.println (msg); + usage(); + System.exit(1); + } + + + /************************************************************************* + * Print the proper syntax for invoking this program. + ************************************************************************/ + private static void usage() { + System.out.println ("\nDescription:"); + System.out.println (" This program exports the contents of a CDF "+ + "file(s) into a single Json file."); + System.out.println (" The Json file will have an \".json\" extension"+ + " if it is not specified. "); + System.out.println (" "); + System.out.println ("Usage: java CDF2Json [Options] [cdfFile1 "+ + "cdfFile2 ...]"); + System.out.println (""); + System.out.println (" cdfFile1 cdfFile2 .... "); + System.out.println (" Command line input CDF file(s) for "+ + "conversion. A maximum of 100 "); + System.out.println (" files can be specified."); + System.out.println (" If the \"output\" option is not specified,"+ + " the first file in the list is"); + System.out.println (" used as the the output Json file name."); + System.out.println (" Alternatively, use \"fileNames\" option "+ + "to specify a text file"); + System.out.println (" that contains the CDF name(s) for "+ + "conversion. Command line file(s) and"); + System.out.println (" fileNames option are mutually exclusive."); + System.out.println (" "); + System.out.println ("Options:"); + System.out.println (" "); + System.out.println (" -fileNames:fileNames"); + System.out.println (" fileNames is a text file that contains the "+ + "input CDF file name(s)"); + System.out.println (" for converting into a Json file. With this "+ + "option, there is no need to"); + System.out.println (" enter the file(s) in the command line."+ + "If the output Json file is not"); + System.out.println (" specified, this file is used as the name "+ + "of the Json output."); + System.out.println (" "); + System.out.println (" -globalAttrs:[yes | no]. -globalAttrs:yes is "+ + "the default."); + System.out.println (" -globalAttrs:yes extracts all global "+ + "attributes."); + System.out.println (" -globalAttrs:no doesn't extract global "+ + "attributes."); + System.out.println (" "); + System.out.println (" -varAttrs:[yes | no]. -varAttrs:yes is "+ + "the default."); + System.out.println (" -varAttrs:yes extracts each variable's "+ + "attributes."); + System.out.println (" -varAttrs:no doesn't extract variable's "+ + "attributes."); + System.out.println (" "); + System.out.println (" -vars:var1,var2,...."); + System.out.println (" -vars:var1,var2,... extracts only the "+ + "specified variables with"); + System.out.println (" variable names "+ + "separated by a single ','."); + System.out.println (" "); + System.out.println (" -varData:[yes | no]. -varData:yes is "+ + "the default."); + System.out.println (" -varData:yes extracts each variable's data"); + System.out.println (" -varData:no doesn't extract record-varying "+ + "variable's data"); + System.out.println (" "); + System.out.println (" -format:[yes | no | prefer]. -format:prefer "+ + "is the default."); + System.out.println (" -format:yes uses variable attribute FORMAT "+ + "to encode data"); + System.out.println (" -format:prefer uses variable attribute "+ + "FORMAT to encode data."); + System.out.println (" However, if its FORMAT is not"+ + " properly defined, it"); + System.out.println (" is treated as \"no\"."); + System.out.println (" -format:no uses Java internal encoding to "+ + "encode data"); + System.out.println (" Note: The format is only relevant to "+ + "floating-point values."); + System.out.println (" "); + System.out.println (" -encodeepoch:[yes | no]. -encodeepoch:yes is "+ + "the default."); + System.out.println (" -encodeepoch:yes encodes CDF epoch data "+ + "values in time string"); + System.out.println (" -encodeepoch:no shows CDF epoch values in "+ + "their original data form"); + System.out.println (" "); + System.out.println (" -[output | json]:outputFileName"); + System.out.println (" The name of the input CDF file is used "+ + "as the default output file"); + System.out.println (" name. Use this option to specify a "+ + "different output file name."); + System.out.println (" "); + System.out.println (" -[showProgress | Progress]"); + System.out.println (" This option displays the processing "+ + "progress on the screen."); + System.out.println (" It shows how many CDF variables are there "+ + "to process and which"); + System.out.println (" variable is being processed."); + System.out.println (" "); + System.out.println (" -debug"); + System.out.println (" Displays the specifications to "+ + "run the application."); + System.out.println (" "); + System.out.println (" -withZ"); + System.out.println (" Adding \"Z\" to the encoded CDF epoch data "+ + "of ISO 8601 form."); + System.out.println (""); + System.out.println (" -delete"); + System.out.println (" Over-ride the existing Json file."); + System.out.println (""); + System.out.println (" -nofullpath"); + System.out.println (" Only use the file name portion of the "+ + "entered full path name as"); + System.out.println (" the key to each CDF in the Json output. "); + System.out.println (""); + System.out.println (" -showfile"); + System.out.println (" Display the file name(s) being processed."); + System.out.println (""); + System.out.println ("NOTE:"); + System.out.println (""); + System.out.println (" 1. Variable's non-varying dimension(s) is "+ + "ignored. A varying dimension"); + System.out.println (" with a size of only 1 is also considered a "+ + "non-varying dimension."); + System.out.println (" 2. NaN|-NaN and INF|-INF, valid floating-point "+ + "values in CDF, but are not"); + System.out.println (" allowed in Json. They are replaced by strings"+ + " \"NaN\"|\"-NaN\" and "); + System.out.println (" \"INF\"|\"-INF\". Try to avoid using any of"+ + " these as it might cause"); + System.out.println (" unexpected results if such Json file is"+ + " converted back to CDF."); + System.out.println (" 3. Only value, without the data type, from "+ + "meta-data is presented in the"); + System.out.println (" Json output."); + System.out.println (" 4. Use CDFJsonReader to display the Json file "+ + "in a easy to read form."); + System.out.println (""); + System.out.println ("Examples: "); + + System.out.println (" java CDF2Json test.cdf (same as "+ + "java CDF2Json -json:test.json test.cdf)"); + System.out.println (" java CDFJsonReader test.json "); + System.out.println (" "); + System.out.println ("The CDF's Json file has the following form: "); + System.out.println (" "); + System.out.println (" CDFname1: <== CDF file name key\n"+ + " CDFFileInfo:\n"+ + " FileVersion:.....\n"+ + " Format:.....\n"+ + " Majority:...\n"+ + " Encoding:.....\n"+ + " CDFglobalAttributes:\n"+ + " Gattr_name1:\n"+ + " entry#:value\n"+ + " ...\n"+ + " ...\n"+ + " Gattr_name2:\n"+ + " entry#:value\n"+ + " ...\n"+ + " ...\n"+ + " ...\n"+ + " ...\n"+ + " CDFVariables:\n"+ + " VarName1: <== Variable name key\n"+ + " VarDescription:\n"+ + " DataType:....\n"+ + " ...\n"+ + " ...\n"+ + " VarAttributes:\n"+ + " VALIDMIN:....\n"+ + " VALIDMAX:....\n"+ + " ...\n"+ + " ...\n"+ + " VarData:\n"+ + " ...\n"+ + " VarName2:\n"+ + " VarDescription:\n"+ + " DataType:....\n"+ + " ...\n"+ + " ...\n"+ + " VarAttributes:\n"+ + " VALIDMIN:....\n"+ + " VALIDMAX:....\n"+ + " ...\n"+ + " ...\n"+ + " VarData:\n"+ + " ...\n"+ + " EmptyAttributes: <== Exists if there are "+ + "attributes defined but no values\n"+ + " GlobalAttributes: [...]\n"+ + " VariableAttributes: [...]\n"+ + " \n"+ + " CDFname2:\n"+ + " ...\n"+ + " ...\n"+ + " ...\n"+ + " ...\n"+ + " "); + } + + /************************************************************************* + * Output a record object with multi-dimensional data values to a + * JsonArray (called by printVarData). + ************************************************************************/ + + private static JsonArrayBuilder printMultipleData (Object data, + long dataType, + int nDims, + long[] dimSizesL, + String addZ, + String formatT, + Object fillVal) { + + int[] dimSizes = new int[nDims]; + for (int i=0; i<(int)nDims;i++) { + dimSizes[i] = (int) dimSizesL[i]; + } + Object aRow = null; + Object [] subArrays = new Object[(int)nDims-1]; + int [] cIndex = new int[(int)nDims-1]; + long [] boundary = new long[(int)nDims-1]; + JsonArrayBuilder jArray = Json.createArrayBuilder(); + subArrays[0] = data; + cIndex[0] = 0; + boundary[0] = product(dimSizes,0,(int)nDims); + for (int i=1; i<(int)nDims-1;i++) { + subArrays[i] = Array.get(subArrays[i-1], 0); + boundary[i] = product(dimSizes,i,(int)nDims); + cIndex[i] = 0; + } + int n = 0; // The current element in the _data + Object cObject = data; // A temp object to hold a subarray + boolean boundaryCrossed; + while (n < boundary[0]) { + // Get the correct 2D subarray to print + if (n != 0) { + for (int i = 0; i < (int)nDims-1; i++) { + boundaryCrossed = ((n % boundary[i]) == 0); + if (boundaryCrossed) { + // Get the next sub array + cIndex[i]+=1; + cObject = Array.get(cObject, cIndex[i]); + subArrays[i] = cObject; + + // Get the first element of each + // subsequent subarray + for (int j=i+1;j<(int)nDims-1;j++) { + cIndex[j] = 0; + subArrays[j] = + Array.get(subArrays[j-1],cIndex[j]); + } + break; + } else { + cObject = subArrays[i]; + } + } + } + + // Fill the correct elements of data + for (int i=0;i=0) + jArray.add(new Short(((short [])aRow)[j]).intValue()); + else { + short tmp = (short) (((short [])aRow)[j] + 256); + jArray.add((int)tmp); + } + } + break; + case (int)CDF_INT4: + aRow = (int [])Array.get(subArrays[(int)nDims - 2], i); + for (int j=0; j=0) + jArray.add(((int [])aRow)[j]); + else { + int tmp = (int) (((int [])aRow)[j] + 65536); + jArray.add(tmp); + } + } + break; + case (int)CDF_UINT4: + aRow = (long [])Array.get(subArrays[(int)nDims - 2], i); + for (int j=0; j=0) + jArray.add(((long [])aRow)[j]); + else { + long tmp = (long) (((long [])aRow)[j]+ 4294967296L); + jArray.add(tmp); + } + } + break; + case (int)CDF_INT8: + case (int)CDF_TIME_TT2000: + aRow = (long [])Array.get(subArrays[(int)nDims - 2], i); + for (int j=0; j 1) product *= array[i]; + + return product; + } + + private static boolean validORscaleORfill (String name) { + + if (name == null) return false; + name = name.toLowerCase(); + if (name.equals("validmin") || name.equals("validmax") || + name.equals("scalemin") || name.equals("scalemax") || + name.equals("fillval")) return true; + else return false; + } + + private static boolean isEpochDataType (long dataType) { + + if (dataType == CDF_EPOCH || dataType == CDF_EPOCH || + dataType == CDF_TIME_TT2000) return true; + else return false; + } + + /************************************************************************* + * Output an object with a single data value or an array of values to + * a JsonObject (called by printGlobalAttributes and printVarAttributes) + * or JsonArray (called by printVarData). + ************************************************************************/ + + private static Object printSingleData (Object jsonObject, String name, + Object data, long dataType, + long numDims, long dataType2, + String addZ, String formatT, + Object fillVal, boolean single) { + + int iflag; + boolean isArray = false; + if (dataType == CDF_EPOCH) iflag = 1; + else if (dataType == CDF_EPOCH16) iflag = 2; + else if (dataType == CDF_TIME_TT2000) iflag = 3; + else iflag = 0; + int i, arrayLength, jj = 1; + if (iflag == 2) jj = 2; + boolean multi = false; + + String signature = CDFUtils.getSignature(data); + JsonObjectBuilder jObject = Json.createObjectBuilder(); + JsonArrayBuilder jArray = Json.createArrayBuilder(); + if (jsonObject instanceof JsonObjectBuilder) + jObject = (JsonObjectBuilder) jsonObject; + else + jArray = (JsonArrayBuilder) jsonObject; + if (signature.charAt(0) == '[') { + arrayLength = Array.getLength(data); + if (iflag == 2) arrayLength = arrayLength / 2; + if (arrayLength > 1) multi = true; + if (iflag != 2) isArray = true; + } + if (multi) { + JsonArrayBuilder jArray2 = Json.createArrayBuilder(); + arrayLength = Array.getLength(data); + for (i=0; i < arrayLength; i=i+jj) { + if (signature.charAt(1) == 'B') + jArray2.add (Array.getByte(data,i)); + + else if (signature.charAt(1) == 'S') + jArray2.add (Array.getShort(data,i)); + + else if (signature.charAt(1) == 'I') + jArray2.add (Array.getInt(data,i)); + + else if (signature.charAt(1) == 'J') + if (iflag == 3 || (isEpochDataType(dataType2) && + validORscaleORfill(name))) { + if (encodeEp) + jArray2.add (CDFTT2000.encode(Array.getLong(data,i))+ + addZ); + else + jArray2.add (Array.getLong(data,i)); + } else + jArray2.add (Array.getLong(data,i)); + + else if (signature.charAt(1) == 'F') { + float ff = Array.getFloat(data,i); + double dd; + if (Float.isNaN(ff)) + jArray2.add ("NaN"); // jArray2.add (Float.NaN); + else if (Float.isNaN(-ff)) + jArray2.add ("-NaN"); // jArray2.add (-Float.NaN); + else if (Float.isInfinite(ff)) + jArray2.add ("INF"); // jArray2.add (Float.POSITIVE_INFINITY); + else if (Float.isInfinite(-ff)) + jArray2.add ("-INF"); // jArray2.add (Float.NEGATIVE_INFINITY); + else { + if (ff == -1.0E30f) dd = -1.0E30; + else if (ff == -1.0E31f) dd = -1.0E31; + else if (ff == 1.0E30f) dd = 1.0E30; + else if (ff == 1.0E31f) dd = 1.0E31; + else dd = (double) ff; + if (formatT == null) + jArray2.add (dd); + else { + try { + String sd = String.format(formatT, dd); + jArray2.add (new Double(sd).doubleValue()); + } catch (Exception ex) { + jArray2.add (dd); + } + } + } + } else if (signature.charAt(1) == 'D') { + double dd = Array.getDouble(data,i); + if (iflag == 1 || (isEpochDataType(dataType2) && + validORscaleORfill(name))) { + if (encodeEp) + jArray2.add (Epoch.encode4(dd)+addZ); + else + jArray2.add (dd); + } else if (iflag == 2 || (isEpochDataType(dataType2) && + validORscaleORfill(name))) { + double[] mmm = new double[2]; + mmm[0] = Array.getDouble(data,i); + mmm[1] = Array.getDouble(data,i+1); + if (encodeEp) + jArray2.add (Epoch16.encode4(mmm)+addZ); + else { + JsonArrayBuilder epoch16 = Json.createArrayBuilder(); + epoch16.add (mmm[0]); + epoch16.add (mmm[1]); + jArray2.add (epoch16.build()); + } + } else { + if (Double.isNaN(dd)) + jArray2.add ("NaN"); // jArray2.add (Double.NaN); + else if (Double.isNaN(-dd)) + jArray2.add ("-NaN"); // jArray2.add (-Double.NaN); + else if (Double.isInfinite(dd)) + jArray2.add ("INF"); // jArray2.add (Double.POSITIVE_INFINITY); + else if (Double.isInfinite(-dd)) + jArray2.add ("-INF"); // jArray2.add (Double.NEGATIVE_INFINITY); + else { + if (formatT == null) { + jArray2.add (dd); + } else { + try { + String sd = String.format(formatT, dd); + jArray2.add (new Double(sd).doubleValue()); + } catch (Exception ex) { + jArray2.add (dd); + } + } + } + } + } + else if (signature.indexOf("String") != -1) + jArray2.add (((String[])data)[i]); + } + if (name != null) + return jObject.add(name, jArray2); + else { + if (single) return jArray2; + else return jArray.add(jArray2); + } + } else { + if (signature.charAt(0) == '[' && iflag != 2) + data = Array.get(data, 0); + if (iflag == 1) { + if (name != null) { + if (encodeEp) + return jObject.add(name, + Epoch.encode4(((Double)data).doubleValue())+ + addZ); + else + return jObject.add(name, ((Double)data).doubleValue()); + } else { + if (encodeEp) + return jArray.add(Epoch.encode4(((Double)data).doubleValue())+ + addZ); + else + return jArray.add(((Double)data).doubleValue()); + } + } else if (iflag == 2) { + if (name != null) { + if (encodeEp) + return jObject.add(name, Epoch16.encode4((double[])data)+addZ); + else { + JsonArrayBuilder epoch16 = Json.createArrayBuilder(); + epoch16.add(((double[])data)[0]); + epoch16.add(((double[])data)[1]); + return jObject.add(name, epoch16.build()); + } + } else { + if (encodeEp) + return jArray.add(Epoch16.encode4(((double[])data))+addZ); + else { + JsonArrayBuilder epoch16 = Json.createArrayBuilder(); + epoch16.add(((double[])data)[0]); + epoch16.add(((double[])data)[1]); + return jArray.add(epoch16.build()); + } + } + } else if (iflag == 3) { + if (name != null) { + if (encodeEp) + return jObject.add(name, + CDFTT2000.encode(((Long)data).longValue())+ + addZ); + else + return jObject.add(name, ((Long)data).longValue()); + } else { + if (encodeEp) + return jArray.add(CDFTT2000.encode(((Long)data).longValue())+ + addZ); + else + return jArray.add(((Long)data).longValue()); + } + } else { + if (signature.indexOf("Byte") != -1) { + int value; + value = ((Byte)data).intValue(); + if (name != null) + return jObject.add(name, value); + else + return jArray.add(value); + } else if (signature.indexOf("Short") != -1) { + int value; + value = ((Short)data).intValue(); + if (name != null) + return jObject.add(name, value); + else + return jArray.add(value); + } else if (signature.indexOf("Int") != -1) { + int value; + value = ((Integer)data).intValue(); + if (name != null) + return jObject.add(name, value); + else + return jArray.add(value); + } else if (signature.indexOf("Long") != -1) { + long value; + value = ((Long)data).longValue(); + if (name != null) { + if (isEpochDataType(dataType2) && validORscaleORfill(name)) + return jObject.add(name, CDFTT2000.encode(value)+addZ); + else + return jObject.add(name, value); + } else { + if (isEpochDataType(dataType2) && validORscaleORfill(name)) + return jArray.add(CDFTT2000.encode(value)+addZ); + else + return jArray.add(value); + } + } else if (signature.indexOf("Float") != -1) { + float ff; + ff = ((Float)data).floatValue(); + if (Float.isNaN(ff)) { + if (name != null) + return jObject.add (name, "NaN"); // jObject.add (name, Float.NaN); + else + return jArray.add ("NaN"); // jArray.add (Float.NaN); + } else if (Float.isNaN(-ff)) { + if (name != null) + return jObject.add (name, "-NaN"); // jObject.add (name, -Float.NaN); + else + return jArray.add ("-NaN"); // jArray.add (-Float.NaN); + } else if (Float.isInfinite(ff)) { + if (name != null) + return jObject.add (name, "INF"); // jObject.add (name, Float.POSITIVE_INFINITY); + else + return jArray.add ("INF"); // jArray.add (Float.POSITIVE_INFINITY); + } else if (Float.isInfinite(-ff)) { + if (name != null) + return jObject.add (name, "-INF"); // jObject.add (name, Float.NEGATIVE_INFINITY); + else + return jArray.add ("-INF"); // jArray.add (Float.NEGATIVE_INFINITY); + } else { + double dd; + if (ff == -1.0E30f) dd = -1.0E30; + else if (ff == -1.0E31f) dd = -1.0E31; + else if (ff == 1.0E30f) dd = 1.0E30; + else if (ff == 1.0E31f) dd = 1.0E31; + else dd = (double) ff; + if (name != null) { + if (formatT == null) { + return jObject.add(name, dd); + } else { + try { + String sd = String.format(formatT, dd); + return jObject.add(name, new Double(sd).doubleValue()); + } catch (Exception ex) { + return jObject.add (name, dd); + } + } + } else { + if (formatT == null) { + return jArray.add(dd); + } else { + try { + String sd = String.format(formatT, dd); + return jArray.add(new Double(sd).doubleValue()); + } catch (Exception ex) { + return jArray.add (dd); + } + } + } + } + } else if (signature.indexOf("Double") != -1) { + double dd; + dd = ((Double)data).doubleValue(); + if (Double.isNaN(dd)) { + if (name != null) + return jObject.add (name, "NaN"); // jObject.add (name, Double.NaN); + else + return jArray.add ("NaN"); // jArray.add (Double.NaN); + } else if (Double.isNaN(-dd)) { + if (name != null) + return jObject.add (name, "NaN"); // jObject.add (name, -Double.NaN); + else + return jArray.add ("-NaN"); // jArray.add (-Double.NaN); + } else if (Double.isInfinite(dd)) { + if (name != null) + return jObject.add (name, "INF"); // jObject.add (name, Double.POSITIVE_INFINITY); + else + return jArray.add ("INF"); // jArray.add (Double.POSITIVE_INFINITY); + } else if (Double.isInfinite(-dd)) { + if (name != null) + return jObject.add (name, "-INF"); // jObject.add (name, Double.NEGATIVE_INFINITY); + else + return jArray.add ("-INF"); // jArray.add (Double.NEGATIVE_INFINITY); + } else { + if (name != null) { + if (formatT == null) { + if (isEpochDataType(dataType2) && validORscaleORfill(name)) + return jObject.add(name, Epoch.encode4(dd)+addZ); + else + return jObject.add(name, dd); + } else { + try { + String sd = String.format(formatT, dd); + if (isEpochDataType(dataType2) && validORscaleORfill(name)) + return jObject.add(name, Epoch.encode4( + new Double(sd).doubleValue())+ + addZ); + else + return jObject.add(name, new Double(sd).doubleValue()); + } catch (Exception ec) { + if (isEpochDataType(dataType2) && validORscaleORfill(name)) + return jObject.add(name, Epoch.encode4(dd)+addZ); + else + return jObject.add(name, dd); + } + } + } else { + if (formatT == null) { + return jArray.add(dd); + } else { + try { + String sd = String.format(formatT, dd); + return jArray.add(new Double(sd).doubleValue()); + } catch (Exception es) { + return jArray.add(dd); + } + } + } + } + } else if (signature.indexOf("String") != -1) { + if (name != null) + return jObject.add(name, (String)data); + else + return jArray.add((String)data); + } + } + } + return null; + } + + private static String toCformat (String oFormat) { + if (oFormat.charAt(0) == '%') return oFormat; + /*********************************************************************** + * FORTRAN format form + * Change `oformat' to point to first non-blank, non-digit, non-`(' + * character. This will skip over a Fortran repeat count (eg. the `20' + * in `20F8.4' or `20(F8.4)'). + ***********************************************************************/ + oFormat = oFormat.trim(); + if (oFormat == null) return null; + int len = oFormat.length(); + String formatY = null; + for (int i = 0; i < len; ++i) { + char a = oFormat.charAt(i); + if (Character.isDigit(a) || a == '(') continue; + formatY = oFormat.substring(i); + if (formatY.endsWith(")")) formatY = formatY.substring(0, + formatY.length()-1); + break; + } + if (formatY == null) return null; + String cformat; + /*********************************************************************** + * Encode C format specification. + ***********************************************************************/ + switch (formatY.charAt(0)) { + /********************************************************************* + * Integer/decimal. + *********************************************************************/ + case 'I': + case 'i': + cformat = formatY.substring(1); + return "%"+cformat+"d"; + /********************************************************************* + * Floating-point/non-scientific notation (which is called... + *********************************************************************/ + case 'F': + case 'f': + cformat = formatY.substring(1); + return "%"+cformat+"f"; + /********************************************************************* + * Floating-point/scientific notation. + *********************************************************************/ + case 'E': + case 'e': + cformat = formatY.substring(1); + return "%"+cformat+"e"; + } + return null; + } + + private static void readFileNames (String fileTxt) { + FileInputStream fIn = null; + BufferedReader br = null; + String line; + int i; + try { + numFiles = 0; + fIn = new FileInputStream(fileTxt);; + br = new BufferedReader(new InputStreamReader(fIn)); + line = br.readLine(); + while (line != null) { + if (CDFUtils.cdfFileExists(line)) ++numFiles; + line = br.readLine(); + } + if (numFiles == 0) { + System.out.println("*** No CDF file(s) is found... "); + System.exit(1); + } + fileNames = new String[numFiles]; + i = 0; + fIn.getChannel().position(0); + br = new BufferedReader(new InputStreamReader(fIn)); + line = br.readLine(); + while (line != null) { + if (CDFUtils.cdfFileExists(line)) { + fileNames[i] = line; + ++i; + } + line = br.readLine(); + } + } catch (Exception ex) { + System.out.println("error: "+ex); + } finally { + try { + if (fIn != null) fIn.close(); + } catch (Exception ey) {} + } + } + +} diff --git a/cdf38_1-dist/cdfjava/cdfjson/CDFJsonReader.java b/cdf38_1-dist/cdfjava/cdfjson/CDFJsonReader.java new file mode 100644 index 0000000..8607992 --- /dev/null +++ b/cdf38_1-dist/cdfjava/cdfjson/CDFJsonReader.java @@ -0,0 +1,388 @@ +import java.io.*; +import java.text.*; +import java.util.*; +import java.lang.reflect.*; +import java.lang.*; +import javax.json.*; +import gsfc.nssdc.cdf.*; +import gsfc.nssdc.cdf.util.*; + +public class CDFJsonReader implements CDFConstants { + + private static boolean toGlobal = true; + private static boolean toVarAttrs = true; + private static boolean toVarDesc = true; + private static boolean toVarData = false; + private static String[] varNames = null; + private static String inFile = null; + private static int varCount = 0; + private static boolean toShow = true; + private static String item1 = "CDFFileInfo"; + private static String item2 = "CDFglobalAttributes"; + private static String item3 = "CDFVariables"; + private static String item4 = "VarDescription"; + private static String item5 = "VarAttributes"; + private static String item6 = "VarData"; + private static String item7 = "EmptyAttributes"; + + public static void main(String[] args) throws IOException { + + parseCmdLine(args); + + InputStream fis = new FileInputStream(inFile); + + JsonReader jsonReader = Json.createReader(fis); + + JsonObject jsonObject = jsonReader.readObject(); + + jsonReader.close(); + fis.close(); + + JsonArray singleFile = jsonObject.getJsonArray(item1); + if (singleFile != null) { + // old CDF Json form (good for single file) + printJsonObject(jsonObject); + } else { + // new CDF Json form + for (String cdfName: jsonObject.keySet()) { + JsonValue cdf = jsonObject.getJsonObject(cdfName); + System.out.println(cdfName+":"); + printJsonObject((JsonObject)jsonObject.getJsonObject(cdfName)); + } + } + } + + private static void printJsonObject (JsonObject jsonObject1) { + // Retrieve data from "CDFFileInfo" JsonArray + JsonArray fileInfoArray = jsonObject1.getJsonArray(item1); + if (fileInfoArray != null) { + System.out.println(" "+item1+":"); + for (JsonValue fileInfo : fileInfoArray) { + for (String key: ((JsonObject)fileInfo).keySet()) { + System.out.println(" "+key+":"+((JsonObject)fileInfo). + getString(key)); + } + } + } + + // Retrieve data from "CDFglobalAttributes" JsonArray + if (toGlobal) { + JsonArray globalAttrArray = jsonObject1.getJsonArray(item2); + if (globalAttrArray != null) { + System.out.println(" "+item2+":"); + for (JsonValue attrInfo : globalAttrArray) { + for (String key: ((JsonObject)attrInfo).keySet()) { + System.out.println(" "+key+":"); + JsonArray entries = ((JsonObject)attrInfo).getJsonArray(key); + for (int ii = 0; ii < entries.size(); ++ii) { + JsonObject entry = entries.getJsonObject(ii); + for (String entryID: entry.keySet()) { + Object value = entry.get(entryID); + System.out.println(" "+entryID+":"+value); + } + } + } + } + } + } + + boolean toVar = false; + // Retrieve data from "CDFVariables" JsonArray + JsonArray cdfVariables = jsonObject1.getJsonArray(item3); + String format = null; + long dataType = 0; + if (cdfVariables != null) { + System.out.println(" "+item3+":"); + format = null; + dataType = 0; + for (JsonValue varInfo : cdfVariables) { + for (String key: ((JsonObject)varInfo).keySet()) { + JsonArray var = ((JsonObject)varInfo).getJsonArray(key); + JsonObject varItem = var.getJsonObject(0); + if (varCount > 0) toShow = checkVar (varItem); + if (!toShow) continue; + System.out.println(" "+key+":"); // Variable name + for (int ii = 0; ii < var.size(); ++ii) { // VarDescription | + // VarAttributes | + // VarData + varItem = var.getJsonObject(ii); + for (String varKey: varItem.keySet()) { + if (varKey.equals("VarDescription")) toVar = false; + if (varKey.equals(item5) && !toVarAttrs) break; + if (varKey.equals(item6) && (!toVarData && !toVar)) break; + Object value = varItem.get(varKey); + if (value instanceof JsonString) { + // VarDescription: + System.out.println(" "+varKey+":"+value); + } else if (value instanceof JsonArray) { + // VarDescription: | VarAttributes: | VarData: + System.out.println(" "+varKey+":"); + int valueN = ((JsonArray)value).size(); + boolean breakout = false; + for (int jj = 0; jj < valueN; ++jj) { + Object data = (Object) ((JsonArray)value).get(jj); + if (data instanceof JsonObject) { + for (String keyx: ((JsonObject)data).keySet()) { + Object des = ((JsonObject)data).get(keyx); + // DataType: | VALIDMIN: + System.out.println(" "+keyx+":"+des); + if (!toVarDesc && keyx.equalsIgnoreCase("varname")) + breakout = true; + if (keyx.equals("RecVariance")) { + if (des.toString().equals("\"NOVARY\"")) toVar= true; + } + if (keyx.equalsIgnoreCase("format")) { + format = toCformat(des.toString(). + replaceAll("^\"|\"$", "")); + } + if (keyx.equalsIgnoreCase("datatype")) { + dataType = CDFUtils.getDataTypeValue( + des.toString().replaceAll("^\"|\"$", "")); + } + } + } else if (data instanceof JsonArray) { + System.out.print(" ["); + int sizex = ((JsonArray)data).size(); + for (int kk = 0; kk < sizex; ++kk) { + Object data1 = ((JsonArray)data).get(kk); + System.out.print(data1+(kk<(sizex-1)?", ":"]")); + } + System.out.println(""); + } else if (data instanceof JsonNumber || + data instanceof JsonString) { + if (jj == 0) System.out.print(" ["); + if (data instanceof JsonString || format == null || + (dataType != CDF_REAL4 && dataType != CDF_REAL8 && + dataType != CDF_FLOAT && dataType != CDF_DOUBLE)) + System.out.print(data+(jj<(valueN-1)?", ":"")); + else + System.out.print( + String.format(format,((JsonNumber)data). + doubleValue())+ + (jj<(valueN-1)?", ":"")); + if (jj == (valueN - 1)) System.out.println("]"); + } else { + System.out.println(" "+data); + } + if (breakout) break; + } + } else if (value instanceof JsonObject) + System.out.println(" :a jsonObject: "+value); + else System.out.println(" :unknown"); + } + } + } + } + + // Retrieve data from "CDFFileInfo" JsonArray + JsonArray emptyAttrs = jsonObject1.getJsonArray(item7); + if (emptyAttrs != null) { + System.out.println(" "+item7+":"); + for (JsonValue attrs : emptyAttrs) { + for (String key: ((JsonObject)attrs).keySet()) { + System.out.println(" "+key+":"+((JsonObject)attrs).get(key)); + } + } + } + } + + } + + private static void parseCmdLine (String[] args) { + String numSpaces = null; + + if (args.length == 0) // No input is given (i.e. java CDFJsonReader) + exit(""); + + else { // Process options + for (int i=0; i < args.length; i++) { + if (i == (args.length-1)) { // Get the Json file name + inFile = args[i]; + if (!(new File(inFile).exists())) { + System.out.println ("** Error: file '"+inFile+ + "' does not exist **"); + System.exit (1); + } + } + else { + int loc = args[i].indexOf(":"); + if (args[i].toLowerCase().startsWith("-vardata:")) { + String varData = args[i].substring(loc+1); + if (!varData.equalsIgnoreCase("yes") && + !varData.equalsIgnoreCase("no")) + exit("** Error: Invalid -vardata entered **"); + if (varData.equalsIgnoreCase("yes")) + toVarData = true; + } + else if (args[i].toLowerCase().startsWith("-globalmetadata:")) { + String globalAttrs = args[i].substring(loc+1); + if (!globalAttrs.equalsIgnoreCase("yes") && + !globalAttrs.equalsIgnoreCase("no")) + exit("** Error: Invalid -globalmetadata entered **"); + if (globalAttrs.equalsIgnoreCase("no")) + toGlobal = false; + } + else if (args[i].toLowerCase().startsWith("-vardesc:")) { + String varDesc = args[i].substring(loc+1); + if (!varDesc.equalsIgnoreCase("yes") && + !varDesc.equalsIgnoreCase("no")) + exit("** Error: Invalid -vardesc entered **"); + if (varDesc.equalsIgnoreCase("no")) + toVarDesc = false; + } + else if (args[i].toLowerCase().startsWith("-varmetadata:")) { + String varAttrs = args[i].substring(loc+1); + if (!varAttrs.equalsIgnoreCase("yes") && + !varAttrs.equalsIgnoreCase("no")) + exit("** Error: Invalid -varmetadata entered **"); + if (varAttrs.equalsIgnoreCase("no")) + toVarAttrs = false; + } + else if (args[i].toLowerCase().startsWith("-vars:")) { + String names = args[i].substring(6); + int e; + varCount = 1; + for (e = 0; e < names.length(); e++) { + if (names.charAt(e) == ',') varCount++; + } + varNames = new String[varCount]; + StringBuffer tmp = new StringBuffer(names); + for (e = 0; e < varCount; ++e) { + int dstr = tmp.indexOf(","); + if (dstr != -1) { + varNames[e] = tmp.substring(0, dstr).toString(); + tmp = new StringBuffer(tmp.substring(dstr+1)); + } else { + varNames[e] = new String(tmp); + } + } + } + } + } + } + } + + private static boolean checkVar (JsonObject varInfo) { + + for (String varKey: varInfo.keySet()) { + JsonArray varItems = varInfo.getJsonArray(varKey); + JsonObject value = (JsonObject) varItems.getJsonObject(0); + for (String key: value.keySet()) { + Object des = value.get(key); + if (key.equalsIgnoreCase("varname")) { + toShow = false; + String varname = ((JsonString)des).getString(); + for (int ll = 0; ll < varCount; ++ll) { + if (varname.equals(varNames[ll])) { + toShow = true; + break; + } + } + } + } + } + return toShow; + } + + private static void exit (String msg) { + if (!msg.equals("")) System.out.println (msg); + usage(); + System.exit(1); + } + + private static void usage() { + System.out.println ("\nDescription:"); + System.out.println (" This program displays the contents of a Json "+ + "file."); + System.out.println (""); + System.out.println ("Usage: java CDFJsonReader [Options] JsonFileName "); + System.out.println (" "); + System.out.println ("Options: "); + System.out.println (" "); + System.out.println (" -globalmetadata:[yes | no]. -globalmetadata:yes"+ + "is the default."); + System.out.println (" -globalmetadata:yes shows all global "+ + "attributes."); + System.out.println (" -globalmetadata:no doesn't show all global "+ + "attributes."); + System.out.println (" "); + System.out.println (" -vardesc:[yes | no]. -vardesc:yes is "+ + "the default."); + System.out.println (" -vardesc:yes shows each variable's name and "+ + "its specification."); + System.out.println (" -vardesc:no shows the variable name only."); + System.out.println (" "); + System.out.println (" -varmetadata:[yes | no]. -varmetadata:yes is "+ + "the default."); + System.out.println (" -varmetadata:yes shows each variable's "+ + "attributes."); + System.out.println (" -varmetadata:no doesn't show each "+ + "variable's attributes."); + System.out.println (" "); + System.out.println (" -vars:var1,var2,.... shows only the "+ + "specified variables with"); + System.out.println (" variable names "+ + "separated by a single ','."); + System.out.println (" Otherwise, all variables "+ + "are shown."); + System.out.println (" "); + System.out.println (" -vardata:[yes | no]. -vardata:no is "+ + "the default."); + System.out.println (" -vardata:yes shows the variable data"); + System.out.println (" -vardata:no doesn't show any record varying "+ + "variable data"); + System.out.println (" "); + } + + private static String toCformat (String oFormat) { + if (oFormat.charAt(0) == '%') return oFormat; + /*********************************************************************** + * FORTRAN format form + * Change `oformat' to point to first non-blank, non-digit, non-`(' + * character. This will skip over a Fortran repeat count (eg. the `20' + * in `20F8.4' or `20(F8.4)'). + ***********************************************************************/ + oFormat = oFormat.trim(); + if (oFormat == null) return null; + int len = oFormat.length(); + String formatY = null; + for (int i = 0; i < len; ++i) { + char a = oFormat.charAt(i); + if (Character.isDigit(a) || a == '(') continue; + formatY = oFormat.substring(i); + if (formatY.endsWith(")")) + formatY = formatY.substring(0, formatY.length()-1); + break; + } + if (formatY == null) return null; + String cformat; + /*********************************************************************** + * Encode C format specification. + ***********************************************************************/ + switch (formatY.charAt(0)) { + /********************************************************************* + * Integer/decimal. + *********************************************************************/ + case 'I': + case 'i': + cformat = formatY.substring(1); + return "%"+cformat+"d"; + /********************************************************************* + * Floating-point/non-scientific notation (which is called... + *********************************************************************/ + case 'F': + case 'f': + cformat = formatY.substring(1); + return "%"+cformat+"f"; + /********************************************************************* + * Floating-point/scientific notation. + *********************************************************************/ + case 'E': + case 'e': + cformat = formatY.substring(1); + return "%"+cformat+"e"; + } + return null; + } + +} diff --git a/cdf38_1-dist/cdfjava/cdfjson/Json2CDF.java b/cdf38_1-dist/cdfjava/cdfjson/Json2CDF.java new file mode 100644 index 0000000..71d99d1 --- /dev/null +++ b/cdf38_1-dist/cdfjava/cdfjson/Json2CDF.java @@ -0,0 +1,1416 @@ +import java.io.*; +import java.text.*; +import java.util.*; +import java.lang.reflect.*; +import java.lang.*; +import javax.json.*; +import gsfc.nssdc.cdf.*; +import gsfc.nssdc.cdf.util.*; + +/** + * The Json2CDF class is the converter to convert a Json file back to a CDF. + * The Json file is produced from CDF2Json class. The Json file has the + * following form: + *
+ *CDFname1:
+ *  CDFFileInfo:
+ *    FileVersion:.....
+ *    Format:.....
+ *    Majority:...
+ *    Encoding:.....
+ *  CDFglobalAttributes:
+ *    Gattr_name1:
+ *     entry#:value
+ *       ...
+ *       ...
+ *    Gattr_name2:
+ *     entry#:value
+ *       ...
+ *       ...
+ *    ...
+ *    ...
+ *  CDFVariables:
+ *    VarName1:
+ *     VarDescription:
+ *       DataType:....
+ *       ...
+ *       ...
+ *     VarAttributes:
+ *       VALIDMIN:....
+ *       VALIDMAX:....
+ *       ...
+ *       ...
+ *     VarData:
+ *       ...
+ *    VarName2:
+ *     VarDescription:
+ *       DataType:....
+ *       ...
+ *       ...
+ *     VarAttributes:
+ *       VALIDMIN:....
+ *       VALIDMAX:....
+ *       ...
+ *       ...
+ *     VarData:
+ *       ...
+ *  EmptyAttributes:        <== If attribute(s) defined but not assign value(s)
+ *     GlobalAttributes:    <== If global attribute(s) is not assigned value
+ *     VariableAttributes:  <== If variable attribute(s) is not assigned value
+ *
+ *CDFname2:
+ *  CDFFileInfo:
+ *   .....
+ *   .....
+ *  CDFglobalAttributes:
+ *    Gattr_name1:
+ *       ...
+ *       ...
+ *    Gattr_name2:
+ *       ...
+ *       ...
+ *    ...
+ *    ...
+ *  CDFVariables:
+ *    VarName1:
+ *     VarDescription:
+ *       ....
+ *...
+ *...
+ *
+ * + * + * This class is based on JNI-based cdfjava.jar and javax.json.jar. + * + * @version 2.0 02/20/2022 + * @author Mike Liu, ADNET Systems + */ + +public class Json2CDF implements CDFConstants { + + private static boolean progress = false, + delete = false, + showfile = false, + toCompress = true, + checksum = false; + private static String inFile = null, + assignedFile = null, + outDir = null; + private static int numFiles = 0; + private static long dataType, numElements; + private static boolean varData = true; + private static long varDataType, varNumElems, varNumDims; + private static long varSparseRec = NO_SPARSERECORDS; + private static long varNumWritten = 0, varMaxWritten = -1; + private static long[] varDimSizes = new long[(int)CDF_MAX_DIMS]; + private static long[] varDimVariances = new long[(int)CDF_MAX_DIMS]; + private static String varName = null; + private static Object varPadValue = null; + private static Object varFillVal = null; + private static long varRecVary = VARY; + private static String separator = System.getProperty("file.separator"); + private static String item1 = "CDFFileInfo"; + private static String item2 = "CDFglobalAttributes"; + private static String item3 = "CDFVariables"; + private static String item4 = "VarDescription"; + private static String item5 = "VarAttributes"; + private static String item6 = "VarData"; + private static String item7 = "EmptyAttributes"; + + public static void main(String[] args) throws IOException { + try { + parseCmdLine(args); + if (showfile) System.out.println(inFile); + InputStream fis = new FileInputStream(inFile); + JsonReader jsonReader = Json.createReader(fis); + JsonObject jsonObject = jsonReader.readObject(); + jsonReader.close(); + fis.close(); + + numFiles = jsonObject.keySet().size(); + + for (String cdfName: jsonObject.keySet()) { + outPutJsonObject(cdfName, + (JsonObject)jsonObject.getJsonObject(cdfName)); + } + + } catch (Exception ep) { + System.out.println("Exception... "+ep); + } + } + + private static void outPutJsonObject (String cdfName, + JsonObject jsonObject1) { + long format = -1, majority = -1, encoding = -1; + CDF cdf = null; + Variable va = null; + String createdCDF = null; + + try { + JsonArray fileInfoArray = jsonObject1.getJsonArray(item1); + if (fileInfoArray != null) { + if (progress) System.out.println(item1+":"); + for (JsonValue fileInfo : fileInfoArray) { + for (String key: ((JsonObject)fileInfo).keySet()) { + String value = ((JsonObject)fileInfo).getString(key); + if (progress) System.out.println(" "+key+":"+value); + if (key.equalsIgnoreCase("filename")) { + cdfName = value; + } else if (key.equalsIgnoreCase("format")) { + format = CDFUtils.getLongFormat (value); + } else if (key.equalsIgnoreCase("majority")) { + majority = CDFUtils.getLongMajority (value); + } else if (key.equalsIgnoreCase("encoding")) { + encoding = CDFUtils.getLongEncoding (value); + } + } + } + String toDelete = null; + if (delete) { + File cdfFile; + if (outDir == null) { + if (numFiles == 1 && assignedFile != null) + toDelete = assignedFile; + else + toDelete = cdfName; + } else { + int loc; + if (numFiles == 1 && assignedFile != null) + toDelete = outDir + separator + assignedFile; + else { + loc = cdfName.lastIndexOf(separator); + if (loc != -1) + toDelete = outDir + separator + cdfName.substring(loc+1); + else + toDelete = outDir + separator + cdfName; + } + } + cdfFile = new File(toDelete); + if (cdfFile.exists()) cdfFile.delete(); + } + + if (outDir == null) + if (numFiles == 1 && assignedFile != null) + createdCDF = assignedFile; + else + createdCDF = cdfName; + else { + if (numFiles == 1 && assignedFile != null) + createdCDF = outDir+separator+assignedFile; + else { + int loc = cdfName.lastIndexOf(separator); + if (loc != -1) + createdCDF = outDir+separator+cdfName.substring(loc+1); + else + createdCDF = outDir+separator+cdfName; + } + } + cdf = CDF.create(createdCDF); + cdf.setFormat(format); + cdf.setMajority(majority); + cdf.setEncoding(encoding); + if (checksum) + cdf.setChecksum(MD5_CHECKSUM); + } + + // Retrieve data from "CDFglobalAttributes" JsonArray + JsonArray globalAttrArray = jsonObject1.getJsonArray(item2); + if (globalAttrArray != null) { + if (progress) System.out.println(item2+":"); + processGlobalAttributes (cdf, globalAttrArray); + } + + // Retrieve data from "CDFVariables" JsonArray + JsonArray cdfVariables = jsonObject1.getJsonArray(item3); + if (cdfVariables != null) { + if (progress) System.out.println(item3+":"); + for (JsonValue varInfo : cdfVariables) { + for (String varName: ((JsonObject)varInfo).keySet()) { + if (progress) System.out.println(" "+varName+":"); + JsonArray varItems = ((JsonObject)varInfo).getJsonArray(varName); + for (int ii = 0; ii < varItems.size(); ++ii) { + JsonObject varItem = varItems.getJsonObject(ii); + for (String itemName: varItem.keySet()) { + if (itemName.equalsIgnoreCase(item4)) { + Object values = varItem.get(itemName); + if (progress) System.out.println(" "+itemName+":"); + va = processVariableSpec (cdf, varName, values); + } else if (itemName.equalsIgnoreCase(item5)) { + if (va != null) { + Object values = varItem.get(itemName); + if (progress) System.out.println(" "+itemName+":"); + processVariableAttributes (cdf, va, values); + } + } else if (itemName.equalsIgnoreCase(item6)) { + if (varData || (varRecVary == NOVARY)) { + if (va != null) { + if (progress) System.out.println(" Doing VarData...."); + Object varData = varItem.get(itemName); + processVariableData (va, varData); + } + } + } else + System.out.println("***** Unknown item...: "+itemName); + } + } + } + } + } + + JsonArray emptyAttrs = jsonObject1.getJsonArray(item7); + if (emptyAttrs != null) { + if (progress) System.out.println(item7+":"); + for (JsonValue groupAttrs : emptyAttrs) { + for (String key: ((JsonObject)groupAttrs).keySet()) { + JsonArray values = ((JsonObject)groupAttrs).getJsonArray(key); + if (progress) System.out.println(" "+key+":"+values); + if (key.equals("GlobalAttributes")) { + for (int ii=0; ii < values.size(); ++ii) { + String attrName = values.getString(ii); + Attribute.create(cdf, attrName, GLOBAL_SCOPE); + } + } else { + for (int ii=0; ii < values.size(); ++ii) { + String attrName = values.getString(ii); + Attribute.create(cdf, attrName, VARIABLE_SCOPE); + } + } + } + } + } + cdf.close(); + } catch (Exception ex) { + System.out.println("***** Error: "+ex+" for file: "+createdCDF); + } + } + + /*********************************************************/ + /* Parse the command line input that is in the form of */ + /* java Json2CDF [Options] cdfFileName */ + /* */ + /* See the top of this file for a detailed description */ + /* of the Options. */ + /*********************************************************/ + private static void parseCmdLine (String[] args) { + String numSpaces = null; + + if (args.length == 0) // No input is given (i.e. java Json2CDF) + exit(""); + else { // Process options + for (int i=0; i < args.length; i++) { + if (i == (args.length-1)) { // Get the CDF file name + inFile = args[i]; + } + else { + int loc = args[i].indexOf(":"); + if (args[i].toLowerCase().startsWith("-output:")) { + assignedFile = args[i].substring(loc+1); + if (!assignedFile.toLowerCase().endsWith(".cdf")) + assignedFile = assignedFile + ".cdf"; + } + else if (args[i].toLowerCase().startsWith("-vardata:")) { + String toData = args[i].substring(loc+1); + if (toData.equalsIgnoreCase("yes")) + varData = true; + else if (toData.equalsIgnoreCase("no")) + varData = false; + else + exit ("** Error: Invalid -vardata option entered **"); + } + else if (args[i].equalsIgnoreCase("-showprogress") || + args[i].equalsIgnoreCase("-progress")) { + progress = true; + } + else if (args[i].equalsIgnoreCase("-delete")) { + delete = true; + } + else if (args[i].equalsIgnoreCase("-showfile")) { + showfile = true; + } + else if (args[i].equalsIgnoreCase("-checksum")) { + checksum = true; + } + else if (args[i].equalsIgnoreCase("-nocompress")) { + toCompress = false; + } + else if (args[i].toLowerCase().startsWith("-outdir:")) { + outDir = args[i].substring(loc+1); + } + else { + exit ("** Error: Invalid option entered **"); + } + } + } + } + } + + private static boolean equivalentDataTypes (long dataType1, long dataType2) { + long realDataType[] = { + 0,1,2,0,3,0,0,0,4,0, + 0,5,6,0,7,0,0,0,0,0, + 0,8,9,0,0,0,0,0,0,0, + 0,9,0,4,0,0,0,0,0,0, + 0,1,0,0,8,9,0,0,0,0, + 0,10,10,0,0,0,0,0,0,0 + }; + return (realDataType[(int)dataType1] == realDataType[(int)dataType2]); + } + + private static Object handleSpecial (long dt, String str) { + + if (str.equals("-nan")) { + if (dt == CDF_DOUBLE || dt == CDF_REAL8) + return new Double(-Double.NaN); + if (dt == CDF_FLOAT || dt == CDF_REAL4) + return new Float(-Float.NaN); + return new Double(-Double.NaN); + } else if (str.equals("nan")) { + if (dt == CDF_DOUBLE || dt == CDF_REAL8) + return new Double(Double.NaN); + if (dt == CDF_FLOAT || dt == CDF_REAL4) + return new Float(Float.NaN); + return new Double(Double.NaN); + } else if (str.equals("-inf")) { + if (dt == CDF_DOUBLE || dt == CDF_REAL8) + return new Double(Double.NEGATIVE_INFINITY); + if (dt == CDF_FLOAT || dt == CDF_REAL4) + return new Float(Float.NEGATIVE_INFINITY); + return new Double(Double.NEGATIVE_INFINITY); + } else if (str.equals("inf")) { + if (dt == CDF_DOUBLE || dt == CDF_REAL8) + return new Double(Double.POSITIVE_INFINITY); + if (dt == CDF_FLOAT || dt == CDF_REAL4) + return new Float(Float.POSITIVE_INFINITY); + return new Double(Double.POSITIVE_INFINITY); + } + return str; + } + + private static Object changeData (long dt1, long dt2, Object data) { + + String signature = CDFUtils.getSignature(data); + if (signature.indexOf("String") != -1) { + if (signature.charAt(0) != '[') { + String str = (String) data; + String str2 = specialString(str); + if (str2 != null) + return handleSpecial (dt2, str2); + else + return data; + } else { + int items = ((String[])data).length; + String str = null, str2 = null; + if (dt2 == CDF_REAL4 || dt2 == CDF_FLOAT) { + float[] nd = new float[items]; + for (int i = 0; i < items; ++i) { + str = ((String[]) data)[i]; + str2 = specialString(str); + if (str2 != null) + nd[i] = ((Float) handleSpecial (dt2, str2)).floatValue(); + else + nd[i] = new Float(str).floatValue(); + } + return nd; + } else if (dt2 == CDF_REAL8 || dt2 == CDF_DOUBLE) { + double[] nd = new double[items]; + for (int i = 0; i < items; ++i) { + str = ((String[]) data)[i]; + str2 = specialString(str); + if (str2 != null) + nd[i] = ((Double) handleSpecial (dt2, str2)).doubleValue(); + else + nd[i] = new Double(str).doubleValue(); + } + return nd; + } else + return data; + } + } + if (equivalentDataTypes(dt1, dt2)) return data; + if (data instanceof Double) { + return new Float(((Double)data).floatValue()); + } else if (data instanceof Integer) { + if (dt1 == CDF_INT1 || dt1 == CDF_BYTE) + return new Byte(((Integer)data).byteValue()); + else if (dt1 == CDF_INT2 || dt1 == CDF_UINT1) + return new Short(((Integer)data).shortValue()); + } else { + if (signature.charAt(0) == '[') { + if (signature.charAt(1) == 'D') { + int items = ((double[])data).length; + float[] nd = new float[items]; + for (int i = 0; i < items; ++i) + nd[i] = (float) ((double[])data)[i]; + return nd; + } else { + if (dt1 == CDF_INT1 || dt1 == CDF_BYTE) { + int items = ((int[])data).length; + byte[] nd = new byte[items]; + for (int i = 0; i < items; ++i) + nd[i] = (byte) ((int[])data)[i]; + return nd; + } else if (dt1 == CDF_INT2 || dt1 == CDF_UINT1) { + int items = ((int[])data).length; + short[] nd = new short[items]; + for (int i = 0; i < items; ++i) + nd[i] = (short) ((int[])data)[i]; + return nd; + } else + return data; + } + } + } + return data; + } + + private static Object handleMixed (int items, Object data) { + + int ix; + int iz = 0; + for (ix = 0; ix < items; ++ix) { + Object one = ((JsonArray)data).get(ix); + if (one instanceof JsonString) { + String str = ((JsonString)one).getString(); + if (specialString(str) == null) { + ++iz; + } + } + } + if (iz != 0) { + System.out.println("???? mixed number & string ?????"); + return null; + } else { + Object outs; + if (dataType == CDF_REAL4 || dataType == CDF_FLOAT) + outs = new double[items]; + else + outs = new double[items]; + for (ix = 0; ix < items; ++ix) { + Object one = ((JsonArray)data).get(ix); + if (one instanceof JsonString) { + String str = ((JsonString)one).getString(); + String str2 = specialString(str); + Object out1 = handleSpecial (dataType, str2); + if (dataType == CDF_REAL4 || dataType == CDF_FLOAT) + ((float[])outs)[ix] = ((Float)out1).floatValue(); + else + ((double[])outs)[ix] = ((Double)out1).doubleValue(); + } else { + if (dataType == CDF_REAL4 || dataType == CDF_FLOAT) + ((float[])outs)[ix] = Float.parseFloat(((JsonNumber)one).toString()); + else + ((double[])outs)[ix] = Double.parseDouble(((JsonNumber)one).toString()); + } + } + return outs; + } + } + + private static Object getData (Object data) { + + String signature = CDFUtils.getSignature(data); + if (data instanceof JsonString) { + String value = ((JsonString)data).toString(); + if (value.charAt(0) == '"') + value = value.substring(1, value.length()-1); + int len = value.length(); + if (len < 14 || value.charAt(4) != '-' || value.charAt(7) != '-' || + value.charAt(10) != 'T' || value.charAt(13) != ':') { + dataType = CDF_CHAR; + return value; + } else { + numElements = 1; + try { + if (value.length() == 23 || value.length() == 24) { // CDF_EPOCH + dataType = CDF_EPOCH; + return new Double(Epoch.toParse(value)); + } else if (value.length() == 29 || value.length() == 30) {//TT2000 + dataType = CDF_TIME_TT2000; + return new Long(CDFTT2000.toParse(value)); + } else { // CDF_EPOCH16 + dataType = CDF_EPOCH16; + double[] epoch16 = Epoch16.toParse(value); + return epoch16; + } + } catch (Exception ee) { + return value; + } + } + } else if (data instanceof JsonNumber) { + numElements = 1; + if (((JsonNumber)data).isIntegral()) { + try { + int aa = Integer.parseInt(((JsonNumber)data).toString()); + dataType = CDF_INT4; + return new Integer(aa); + } catch (Exception ee) { + long bb = Long.parseLong(((JsonNumber)data).toString()); + dataType = CDF_INT8; + return new Long(bb); + } + } else { + double bb = Double.parseDouble(((JsonNumber)data).toString()); + dataType = CDF_DOUBLE; + return new Double(bb); + } + } else if (data instanceof JsonArray) { + Object one = ((JsonArray)data).get(0); + int items = ((JsonArray)data).size(); + int ix, iy, iz; + iy = iz = 0; + for (ix = 0; ix < items; ++ix) { + Object one1 = ((JsonArray)data).get(ix); + if (one1 instanceof JsonString) { + ++iy; + String stri = ((JsonString)one1).getString(); + String stri2 = specialString(stri); + if (stri2 != null) + ++iz; + } + } + + if ((iy != 0 && iy != items) || (iz == items)) { + dataType = CDF_DOUBLE; + return handleMixed (items, data); + } + + if (iy == items) { + String oneS = ((JsonString)one).toString(); + if (oneS.length() < 10 || oneS.charAt(10) != 'T') { + dataType = CDF_CHAR; + String[] outs = new String[items]; + for (int ii = 0; ii < items; ++ii) { + outs[ii] = ((JsonString)((JsonArray)data).get(ii)).toString(); + } + return outs; + } else { // CDF epoch data + double[] outs1 = null; + long[] outs2 = null; + for (int ii = 0; ii < items; ++ii) { + Object aa = getData((Object)(((JsonArray)data).get(ii))); + if (ii == 0) { + if (dataType == CDF_EPOCH) outs1 = new double[items]; + else if (dataType == CDF_EPOCH) outs1 = new double[2*items]; + else outs2 = new long[items]; + } + if (dataType == CDF_EPOCH) + outs1[ii] = ((Double)aa).doubleValue(); + else if (dataType == CDF_EPOCH) + outs2[ii] = ((Long)aa).longValue(); + else { + outs1[2*ii] = ((double[])aa)[0]; + outs1[2*ii+1] = ((double[])aa)[1]; + } + } + if (dataType == CDF_EPOCH || dataType == CDF_EPOCH16) + return outs1; + else + return outs2; + } + } else if (iy == 0) { + if (((JsonNumber)one).isIntegral()) { + try { + dataType = CDF_INT4; + int[] outs1 = new int[items]; + for (int ii = 0; ii < items; ++ii) { + outs1[ii] = Integer.parseInt( + ((JsonNumber)((JsonArray)data).get(ii)). + toString()); + } + return outs1; + } catch (Exception ee) { + dataType = CDF_INT8; + long[] outs2 = new long[items]; + for (int ii = 0; ii < items; ++ii) { + outs2[ii] = Long.parseLong( + ((JsonNumber)((JsonArray)data).get(ii)). + toString()); + } + return outs2; + } + } else { + dataType = CDF_DOUBLE; + double[] outs1 = new double[items]; + for (int ii = 0; ii < items; ++ii) { + outs1[ii] = Double.parseDouble( + ((JsonNumber)((JsonArray)data).get(ii)). + toString()); + } + return outs1; + } + } else { + System.out.println(" ?????"); + } + } else + System.out.println(" NONE"); + return null; + } + + private static String specialString (String string) { + String str = string.toLowerCase(); + if (str.startsWith("\"")) + str = str.substring(1, str.length()-1); + if (str.equals("nan") || str.equals("-nan") || + str.equals("inf") || str.equals("-inf")) + return str; + else + return null; + } + + private static Object setData (Object values, Object buf, int items, + int recNum) throws CDFException { + + int count = 0; + for (int jj = 0; jj < recNum; ++jj) { + Object data = (Object) ((JsonArray)values).get(jj); + String signature = CDFUtils.getSignature(data); + Object newObj = null; + if (data instanceof JsonString) { + String str = ((JsonString)data).getString(); + String str2 = specialString(str); + if (str2 != null) { + newObj = handleSpecial (varDataType, str2); + if (varDataType == CDF_REAL4 || varDataType == CDF_FLOAT) { + if (items == 1) + return newObj; + else + ((float[])buf)[jj] = ((Float)newObj).floatValue(); + } + if (varDataType == CDF_REAL8 || varDataType == CDF_DOUBLE) { + if (items == 1) + return newObj; + else + ((double[])buf)[jj] = ((Double)newObj).doubleValue(); + } + continue; + } else + newObj = setData1 (data); + if (items == 1) + return newObj; + else { + if (varDataType == CDF_EPOCH) { + ((double[])buf)[jj] = ((Double)newObj).doubleValue(); + } else if (varDataType == CDF_TIME_TT2000) { + ((long[])buf)[jj] = ((Long)newObj).longValue(); + } else if (varDataType == CDF_EPOCH16) { + ((double[])buf)[2*jj] = ((double[])newObj)[0]; + ((double[])buf)[2*jj+1] = ((double[])newObj)[1]; + } else { + byte[] by = ((String)newObj).getBytes(); + int len = ((String)newObj).length(); + for (int xy = 0; xy < len; ++xy) + ((byte[])buf)[count+xy] = by[xy]; + for (int xy = len; xy < varNumElems; ++xy) + ((byte[])buf)[count+xy] = (byte) 0; + count += varNumElems; + } + } + } else if (data instanceof JsonNumber) { + newObj = setData1 (data); + if (items == 1) + return newObj; + else { + switch ((int)varDataType) { + case (int)CDF_BYTE: + case (int)CDF_INT1: + ((byte[])buf)[jj] = ((Byte)newObj).byteValue(); + break; + case (int)CDF_INT2: + case (int)CDF_UINT1: + ((short[])buf)[jj] = (short)((JsonNumber)data).intValue(); + break; + case (int)CDF_INT4: + case (int)CDF_UINT2: + ((int[])buf)[jj] = ((JsonNumber)data).intValue(); + break; + case (int)CDF_UINT4: + case (int)CDF_INT8: + ((long[])buf)[jj] = ((JsonNumber)data).longValue(); + break; + case (int)CDF_REAL4: + case (int)CDF_FLOAT: + ((float[])buf)[jj] = (float)((JsonNumber)data).doubleValue(); + break; + case (int)CDF_REAL8: + case (int)CDF_DOUBLE: + ((double[])buf)[jj] = ((JsonNumber)data).doubleValue(); + break; + default: + break; + } + } + } else if (data instanceof JsonArray) { + int items2 = ((JsonArray)data).size(); + Object one = ((JsonArray)data).get(0); + if (one instanceof JsonString) { + for (int ii = 0; ii < items2; ++ii) { + String str = ((JsonString)((JsonArray)data).get(ii)).toString(); + Object oneObj = setData1 (str); + if (varDataType == CDF_CHAR || varDataType == CDF_UCHAR) { + int lenx = ((String)oneObj).length(); + byte[] by = ((String)oneObj).getBytes(); + for (int xy = 0; xy < lenx; ++xy) + ((byte[])buf)[count+xy] = by[xy]; + for (int xy = lenx; xy < varNumElems; ++xy) + ((byte[])buf)[count+xy] = (byte) 0; + count += varNumElems; + } else if (varDataType == CDF_EPOCH) { // CDF epoch data + ((double[])buf)[count++] = ((Double)oneObj).doubleValue(); + } else if (varDataType == CDF_TIME_TT2000) { // CDF epoch data + ((long[])buf)[count++] = ((Long)oneObj).longValue(); + } else if (varDataType == CDF_EPOCH16) { // CDF epoch data + ((double[])buf)[count] = ((double[])oneObj)[0]; + ((double[])buf)[count+1] = ((double[])oneObj)[1]; + count += 2; + } + } + } else if (one instanceof JsonNumber) { + for (int ii = 0; ii < items2; ++ii) { + Object single = (Object) ((JsonArray)data).get(ii); + Object oneObj = setData1 (single); + switch ((int)varDataType) { + case (int)CDF_BYTE: + case (int)CDF_INT1: + ((byte[])buf)[count++] = ((Byte)oneObj).byteValue(); + break; + case (int)CDF_INT2: + case (int)CDF_UINT1: + ((short[])buf)[count++] = ((Short)oneObj).shortValue(); + break; + case (int)CDF_INT4: + case (int)CDF_UINT2: + ((int[])buf)[count++] = ((Integer)oneObj).intValue(); + break; + case (int)CDF_UINT4: + case (int)CDF_INT8: + ((long[])buf)[count++] = ((Long)oneObj).longValue(); + break; + case (int)CDF_REAL4: + case (int)CDF_FLOAT: + ((float[])buf)[count++] = ((Float)oneObj).floatValue(); + break; + case (int)CDF_REAL8: + case (int)CDF_DOUBLE: + ((double[])buf)[count++] = ((Double)oneObj).doubleValue(); + break; + default: + break; + } // switch + } // end of array + } + } else { + System.out.println(" ?????"); + return null; + } + } + return buf; + } + + private static Object setData1 (Object data) throws CDFException { + + String value; + if (data instanceof JsonString || data instanceof String) { + if (data instanceof JsonString) + value = ((JsonString)data).toString(); + else + value = (String) data; + if (value.charAt(0) == '"') + value = value.substring(1, value.length()-1); + if (varDataType == CDF_EPOCH) { + return new Double(Epoch.toParse(value)); + } else if (varDataType == CDF_TIME_TT2000) { + return new Long(CDFTT2000.toParse(value)); + } else if (varDataType == CDF_EPOCH16) { + double[] epoch16 = Epoch16.toParse(value); + return epoch16; + } else + return value; + } else if (data instanceof JsonNumber) { + switch ((int)varDataType) { + case (int)CDF_BYTE: + case (int)CDF_INT1: + return new Byte((byte)((JsonNumber)data).intValue()); + case (int)CDF_INT2: + case (int)CDF_UINT1: + return new Short((short)((JsonNumber)data).intValue()); + case (int)CDF_INT4: + case (int)CDF_UINT2: + return new Integer(((JsonNumber)data).intValue()); + case (int)CDF_UINT4: + case (int)CDF_INT8: + return new Long(((JsonNumber)data).longValue()); + case (int)CDF_REAL4: + case (int)CDF_FLOAT: + return new Float(((JsonNumber)data).doubleValue()); + case (int)CDF_REAL8: + case (int)CDF_DOUBLE: + return new Double(((JsonNumber)data).doubleValue()); + default: + return null; + } + } + return null; + } + + private static void exit (String msg) { + if (!msg.equals("")) System.out.println (msg); + usage(); + System.exit(1); + } + + /************************************************************************* + * Print the proper syntax for invoking this program. + ************************************************************************/ + private static void usage() { + System.out.println ("\nDescription:"); + System.out.println (" This program exports the contents of a Json "+ + "file into a CDF file(s)."); + System.out.println (""); + System.out.println ("Usage: java Json2CDF [Options] JsonFileName "); + System.out.println (" JsonFileName: The name of the Json file used "+ + "to create a CDF(s)."); + System.out.println (" "); + System.out.println ("Options: "); + System.out.println (" "); + System.out.println (" -output:outputFileName"); + System.out.println (" Use this option to specify a different "+ + "output file name for the CDF."); + System.out.println (" It is only applicable to a single CDF file "+ + "output."); + System.out.println (" "); + System.out.println (" -outdir:outputDir"); + System.out.println (" Specifies a directory to hold the output "+ + "CDF file(s). Make sure the"); + System.out.println (" directory exists and is writeable."); + System.out.println (" "); + System.out.println (" -vardata:[yes | no]. -vardata:yes is the "+ + "default."); + System.out.println (" Whether to extract var data in the Json "+ + "file if it is there. If \"no\""); + System.out.println (" is specified, non-record varying variables' "+ + "data will not be extracted."); + System.out.println (" "); + System.out.println (" -[showProgress | Progress]"); + System.out.println (" This option displays the processing "+ + "progress on the screen."); + System.out.println (" It shows how many CDF variables are there "+ + "to process and which"); + System.out.println (" variable is being processed."); + System.out.println (" "); + System.out.println (" -checksum"); + System.out.println (" This option adds checksum to the file."); + System.out.println (" "); + System.out.println (" -nocompress"); + System.out.println (" This option forces no compression for "+ + "variable data. By default, a"); + System.out.println (" variable with large enough size (>1K) will "+ + "be compressed, no matter if"); + System.out.println (" defined by its specification or not."); + System.out.println (" "); + System.out.println (" -delete"); + System.out.println (" Over-ride the CDF file(s) if it already"+ + "exists."); + System.out.println (""); + System.out.println (" -showfile"); + System.out.println (" Display the Json file being processed."); + System.out.println (""); + System.out.println ("NOTE:"); + System.out.println (" 1. All integral values are converted into 4-byte"+ + " integer, if they can fill. "); + System.out.println (" Otherwise, 8-byte long are used. All floating"+ + "-values are converted into "); + System.out.println (" 8-byte doubles."); + System.out.println (" 2. A varying dimension with size of 1 is "+ + "considered as non-varying."); + System.out.println (" Its dimension is removed and NOT shown."); + System.out.println (" 3. Values for variable attributes: VALIDMIN/"+ + "VALIDMAX/SCALEMIN/SCALEMAX/FILLVAL"); + System.out.println (" will have the same data type as the variable's."); + System.out.println (" 4. All variables are zVariables."); + System.out.println (" 5. All \"NaN\"|\"-NaN\" and \"INF\"|\"-INF\" "+ + "strings are converted into"); + System.out.println (" floating-point values. "); + System.out.println (""); + System.out.println ("Examples: "); + + System.out.println (" java Json2CDF test.json (same as "+ + "java Json2CDF -json:test.cdf test.json)"); + System.out.println (""); + System.out.println ("The Json file should have the following form: "+ + "(made from CDF2Json):\n"+ + "CDFname1: \n"+ + " CDFFileInfo: \n"+ + " FileVersion:..... \n"+ + " Format:..... \n"+ + " Majority:... \n"+ + " Encoding:..... \n"+ + " CDFglobalAttributes: \n"+ + " Gattr_name1: \n"+ + " entry#:value \n"+ + " ... \n"+ + " Gattr_name2: \n"+ + " entry#:value \n"+ + " ... \n"+ + " ... \n"+ + " ... \n"+ + " CDFVariables: \n"+ + " VarName1: \n"+ + " VarDescription: \n"+ + " DataType:.... \n"+ + " ... \n"+ + " ... \n"+ + " VarAttributes: \n"+ + " VALIDMIN:.... \n"+ + " ... \n"+ + " ... \n"+ + " VarData: \n"+ + " ... \n"+ + " VarName2: \n"+ + " VarDescription: \n"+ + " DataType:.... \n"+ + " ... \n"+ + " ... \n"+ + " VarAttributes: \n"+ + " ... \n"+ + " ... \n"+ + " VarData: \n"+ + " ... \n"+ + " EmptyAttributes: <== If attribute(s) defined but not assign value(s) \n"+ + " GlobalAttributes: <== If global attribute(s) is not assigned value \n"+ + " VariableAttributes: <== If variable attribute(s) is not assigned value \n"+ + " \n"+ + "CDFname2: \n"+ + " CDFFileInfo: \n"+ + " ..... \n"+ + " ..... \n"+ + " CDFglobalAttributes: \n"+ + " Gattr_name1: \n"+ + " ... \n"+ + " Gattr_name2: \n"+ + " ... \n"+ + " ... \n"+ + " ... \n"+ + " CDFVariables: \n"+ + " VarName1: \n"+ + " VarDescription: \n"+ + " .... \n"+ + " ...."); + + System.out.println (" "); + } + + private static void processGlobalAttributes (CDF cdf, + JsonArray globalAttrArray) + throws CDFException { + + for (JsonValue attrInfo : globalAttrArray) { + for (String attrName: ((JsonObject)attrInfo).keySet()) { + if (progress) System.out.println(" "+attrName); + Attribute attr = Attribute.create(cdf, attrName, GLOBAL_SCOPE); + JsonArray entries = ((JsonObject)attrInfo).getJsonArray(attrName); + for (int ii = 0; ii < entries.size(); ++ii) { + JsonObject entry = entries.getJsonObject(ii); + for (String entryID: entry.keySet()) { + Object value = getData ((Object)(entry.get(entryID))); + if (progress) System.out.println(" "+entryID+":"+value); + Entry.create(attr, new Integer(entryID).intValue(), + dataType, value); + } + } + } + } + } + + private static Variable processVariableSpec (CDF cdf, String varName, + Object values) + throws CDFException { + + Object padValue = null; + varPadValue = null; + varSparseRec = NO_SPARSERECORDS; + long compression = -1, compLvl = 0; + long blockingFactor = -1; + int items = ((JsonArray)values).size(); + varDataType = varNumElems = varNumDims = varMaxWritten = -1; + for (int jj = 0; jj < items; ++jj) { + Object data = (Object) ((JsonArray)values).get(jj); + if (data instanceof JsonObject) { + for (String keyx: ((JsonObject)data).keySet()) { + Object des = ((JsonObject)data).get(keyx); + if (progress) System.out.println(" "+keyx+":"+des); + if (keyx.equalsIgnoreCase("varname")) { + } else if (keyx.equalsIgnoreCase("datatype")) { + String dt = ((JsonObject)data).getString(keyx); + varDataType = CDFUtils.getDataTypeValue(dt); + } else if (keyx.equalsIgnoreCase("numelements")) { + varNumElems = (long) ((JsonObject)data).getInt(keyx); + } else if (keyx.equalsIgnoreCase("numdims")) { + varNumDims = (long) ((JsonObject)data).getInt(keyx); + } else if (keyx.equalsIgnoreCase("dimsizes")) { + JsonArray ds = ((JsonObject)data).getJsonArray(keyx); + for (int j = 0; j < (int)varNumDims; ++j) { + varDimSizes[j] = (long) ds.getInt(j); + } + } else if (keyx.equalsIgnoreCase("recvariance")) { + String rv = ((JsonObject)data).getString(keyx); + if (rv.equalsIgnoreCase("vary")) varRecVary = VARY; + else varRecVary = NOVARY; + } else if (keyx.equalsIgnoreCase("dimvariances")) { + JsonArray dv = ((JsonObject)data).getJsonArray(keyx); + for (int j = 0; j < (int)varNumDims; ++j) { + String dv1 = dv.getString(j); + if (dv1.equalsIgnoreCase("vary")) + varDimVariances[j] = VARY; + else + varDimVariances[j] = NOVARY; + } + } else if (keyx.equalsIgnoreCase("compression")) { + String cp = ((JsonObject)data).getString(keyx); + String cType = cp.substring(0, cp.indexOf('.')); + String cLvl = cp.substring(cp.indexOf('.')+1); + compression = CDFUtils.getLongCompressionType(cType); + compLvl = new Long(cLvl).longValue(); + } else if (keyx.equalsIgnoreCase("blockingfactor")) { + blockingFactor = (long) ((JsonObject)data).getInt(keyx); + } else if (keyx.equalsIgnoreCase("sparserecords")) { + String sr = ((JsonObject)data).getString(keyx); + varSparseRec = CDFUtils.getLongSparseRecord(sr); + } else if (keyx.equalsIgnoreCase("numwrittenrecords")) { + varNumWritten = (long) ((JsonObject)data).getInt(keyx); + } else if (keyx.equalsIgnoreCase("maxwrittenrec")) { + varMaxWritten = (long) ((JsonObject)data).getInt(keyx); + } else if (keyx.equalsIgnoreCase("padvalue")) { + padValue = (Object) ((JsonObject)data).get(keyx); + } else + System.out.println("NOT handling... "+keyx); + } + } + } + + if (progress) { + System.out.print("***** Creating... var:"+varName+" "+" type:"+ + CDFUtils.getStringDataType(varDataType)+ + " numElms="+varNumElems+" numDims="+varNumDims+" "); + if (varNumDims > 0) { + System.out.print("dimSize=["); + for (int ll= 0; ll < (int)varNumDims; ++ll) { + System.out.print(varDimSizes[ll]); + if (ll < (varNumDims-1)) System.out.print(","); + if (ll == (varNumDims-1)) System.out.print("] "); + } + } + System.out.println("RecVary="+(varRecVary==-1?"T":"F")); + } + + if (varDataType == -1 || varNumElems == -1 || varNumDims == -1) + return null; + Variable va = Variable.create(cdf, varName, varDataType, varNumElems, + varNumDims, varDimSizes, varRecVary, + varDimVariances); + varFillVal = null; + if (padValue != null) { + varPadValue = setData1 (padValue); + va.setPadValue(varPadValue); + } + if (toCompress && varSparseRec == NO_SPARSERECORDS) { + if (compression != -1) + va.setCompression(compression, new long[] {compLvl}); + else { + long nValues = (varMaxWritten==-1?0:varMaxWritten) + 1; + for (int ll = 0; ll < (int)varNumDims; ++ll) + nValues *= varDimSizes[ll]; + nValues *= varNumElems; + nValues *= getDataTypeSize(varDataType); + if (nValues > 1000) { + compression = GZIP_COMPRESSION; + compLvl = 6; + va.setCompression(compression, new long[] {compLvl}); + } + } + } + if (blockingFactor != -1) + va.setBlockingFactor(blockingFactor); + if (varSparseRec != NO_SPARSERECORDS) + va.setSparseRecords(varSparseRec); + return va; + } + + private static void processVariableAttributes (CDF cdf, Variable va, + Object values) + throws CDFException { + int items = ((JsonArray)values).size(); + for (int jj = 0; jj < items; ++jj) { + Attribute attr = null; + Object data = (Object) ((JsonArray)values).get(jj); + if (data instanceof JsonObject) { + for (String keyx: ((JsonObject)data).keySet()) { + Object des = ((JsonObject)data).get(keyx); + if (progress) System.out.println(" "+keyx+":"+des); + Object outs = getData(des); + try { + attr = Attribute.create(cdf, keyx, VARIABLE_SCOPE); + } catch (CDFException ss) { + attr = cdf.getAttribute(keyx); + } + if (keyx.equalsIgnoreCase("validmin") || + keyx.equalsIgnoreCase("validmax") || + keyx.equalsIgnoreCase("scalemin") || + keyx.equalsIgnoreCase("scalemax") || + keyx.equalsIgnoreCase("fillval")) { + outs = changeData(dataType, varDataType, outs); + dataType = varDataType; + if (keyx.equalsIgnoreCase("fillval")) + varFillVal = outs; + } + va.putEntry(attr, dataType, outs); + } + } + } + } + + private static void processVariableData (Variable va, Object varData) + throws CDFException { + int recNum, items, nItems = 1; + recNum = 1; + items = 1; + for (int ii = 0; ii < varNumDims; ++ii) items *= varDimSizes[ii]; + if (varData instanceof JsonArray) { + nItems = ((JsonArray)varData).size(); + } + if (varRecVary == VARY) { + if ((((JsonArray)varData).get(0)) instanceof JsonArray) + recNum = nItems; + else + recNum = nItems / items; + } + String signature = CDFUtils.getSignature(varData); + int nBytes = 1; + Object realData = null; + Object outs = null; + if (varDataType == CDF_CHAR || varDataType == CDF_UCHAR) + nBytes = items * (int) varNumElems * recNum; + if (varSparseRec == NO_SPARSERECORDS) + items *= recNum; + if (items > 1) { + if (varDataType == CDF_INT1 || varDataType == CDF_BYTE) { + outs = (Object) new byte[items]; + } else if (varDataType == CDF_INT2 || varDataType == CDF_UINT1) { + outs = (Object) new short[items]; + } else if (varDataType == CDF_INT4 || varDataType == CDF_UINT2) { + outs = (Object) new int[items]; + } else if (varDataType == CDF_INT8 || varDataType == CDF_UINT4 || + varDataType == CDF_TIME_TT2000) { + outs = (Object) new long[items]; + } else if (varDataType == CDF_REAL4 || varDataType == CDF_FLOAT) { + outs = (Object) new float[items]; + } else if (varDataType == CDF_REAL8 || varDataType == CDF_DOUBLE || + varDataType == CDF_EPOCH) { + outs = (Object) new double[items]; + } else if (varDataType == CDF_EPOCH16) { + outs = (Object) new double[items*2]; + } else if (varDataType == CDF_CHAR || varDataType == CDF_UCHAR) { + outs = (Object) new byte[nBytes]; + } + } + if (varSparseRec == NO_SPARSERECORDS) { + if (varData instanceof JsonArray) + realData = setData((Object) varData, + (items==1?null:(Object)outs), items, + (recNum==1?items:recNum)); + else + realData = setData1(varData); + va.putRecords(0L, (long) recNum, realData); + } else { + Object filledData = null; + if (varSparseRec == PAD_SPARSERECORDS) { + if (varFillVal != null) filledData = varFillVal; + else filledData = varPadValue; + } + for (int ii = 0; ii < recNum; ++ii) { + Object data = (Object) ((JsonArray)varData).get(ii); + if (data instanceof JsonArray) + realData = setData(data, (items==1?null:(Object)outs), items, + items); + else + realData = setData1(data); + boolean virtual = checkForVirtual (realData, filledData); + if (!virtual) { + va.putRecord((long)ii, realData); + if (varSparseRec == PREV_SPARSERECORDS) + filledData = realData; + } + } + } + } + + private static boolean checkForVirtual (Object data, Object filledData) { + + if (filledData == null) return false; + String signature = CDFUtils.getSignature(data); + String sig2 = CDFUtils.getSignature(filledData); + if (signature.charAt(0) == '[') { + if (varDataType == CDF_INT1 || varDataType == CDF_BYTE) { + int itemN = ((byte[])data).length; + for (int ik = 0; ik < itemN; ++ik) { + if (sig2.charAt(0) == '[') { + if (((byte[])data)[ik] != ((byte[])filledData)[ik]) + return false; + } else { + if (((byte[])data)[ik] != ((Byte)filledData).byteValue()) + return false; + } + } + return true; + } else if (varDataType == CDF_INT2 || varDataType == CDF_UINT1) { + int itemN = ((short[])data).length; + for (int ik = 0; ik < itemN; ++ik) { + if (sig2.charAt(0) == '[') { + if (((short[])data)[ik] != ((short[])filledData)[ik]) + return false; + } else { + if (((short[])data)[ik] != ((Short)filledData).shortValue()) + return false; + } + } + return true; + } else if (varDataType == CDF_INT4 || varDataType == CDF_UINT2) { + int itemN = ((int[])data).length; + for (int ik = 0; ik < itemN; ++ik) { + if (sig2.charAt(0) == '[') { + if (((int[])data)[ik] != ((int[])filledData)[ik]) + return false; + } else { + if (((int[])data)[ik] != ((Integer)filledData).intValue()) + return false; + } + } + return true; + } else if (varDataType == CDF_INT8 || varDataType == CDF_UINT4 || + varDataType == CDF_TIME_TT2000) { + int itemN = ((long[])data).length; + for (int ik = 0; ik < itemN; ++ik) { + if (sig2.charAt(0) == '[') { + if (((long[])data)[ik] != ((long[])filledData)[ik]) + return false; + } else { + if (((long[])data)[ik] != ((Long)filledData).longValue()) + return false; + } + } + return true; + } else if (varDataType == CDF_REAL4 || varDataType == CDF_FLOAT) { + int itemN = ((float[])data).length; + for (int ik = 0; ik < itemN; ++ik) { + if (sig2.charAt(0) == '[') { + if (((float[])data)[ik] != ((float[])filledData)[ik]) + return false; + } else { + if (((float[])data)[ik] != ((Float)filledData).floatValue()) + return false; + } + } + return true; + } else if (varDataType == CDF_REAL8 || varDataType == CDF_DOUBLE || + varDataType == CDF_EPOCH) { + int itemN = ((double[])data).length; + for (int ik = 0; ik < itemN; ++ik) { + if (sig2.charAt(0) == '[') { + if (((double[])data)[ik] != ((double[])filledData)[ik]) + return false; + } else { + if (((double[])data)[ik] != ((Double)filledData).doubleValue()) + return false; + } + } + return true; + } + } else { + if (varDataType == CDF_INT1 || varDataType == CDF_BYTE) { + if (((Byte)data).byteValue() != ((Byte)filledData).byteValue()) + return false; + else + return true; + } else if (varDataType == CDF_INT2 || varDataType == CDF_UINT1) { + if (((Short)data).shortValue() != ((Short)filledData).shortValue()) + return false; + else + return true; + } else if (varDataType == CDF_INT4 || varDataType == CDF_UINT2) { + if (((Integer)data).intValue() != ((Integer)filledData).intValue()) + return false; + else + return true; + } else if (varDataType == CDF_INT8 || varDataType == CDF_UINT4 || + varDataType == CDF_TIME_TT2000) { + if (((Long)data).longValue() != ((Long)filledData).longValue()) + return false; + else + return true; + } else if (varDataType == CDF_REAL4 || varDataType == CDF_FLOAT) { + if (((Float)data).floatValue() != ((Float)filledData).floatValue()) + return false; + else + return true; + } else if (varDataType == CDF_REAL8 || varDataType == CDF_DOUBLE || + varDataType == CDF_EPOCH) { + if (((Double)data).doubleValue() != ((Double)filledData).doubleValue()) + return false; + else + return true; + } else + return false; + } + return false; + } + + private static int getDimSize (Object obj) { + String sig = CDFUtils.getSignature(obj); + String what = sig.substring(0,2); + if (what.equals("[I")) return ((int[])obj).length; + else if (what.equals("[B")) return ((byte[])obj).length; + else if (what.equals("[J")) return ((long[])obj).length; + else if (what.equals("[S")) return ((short[])obj).length; + else if (what.equals("[F")) return ((float[])obj).length; + else if (what.equals("[D")) return ((double[])obj).length; + return 1; + } + + private static int getDataTypeSize (long dataType) { + int size; + switch ((int)dataType) { + case (int)CDF_BYTE: + case (int)CDF_INT1: + case (int)CDF_UINT1: + case (int)CDF_CHAR: + case (int)CDF_UCHAR: + size = 1; + break; + case (int)CDF_INT2: + case (int)CDF_UINT2: + size = 2; + break; + case (int)CDF_INT4: + case (int)CDF_UINT4: + case (int)CDF_REAL4: + case (int)CDF_FLOAT: + size = 4; + break; + case (int)CDF_INT8: + case (int)CDF_TIME_TT2000: + case (int)CDF_REAL8: + case (int)CDF_DOUBLE: + case (int)CDF_EPOCH: + size = 8; + break; + case (int)CDF_EPOCH16: + size = 16; + break; + default: + size = 1; + break; + } + return size; + } + +} + diff --git a/cdf38_1-dist/cdfjava/cdfjson/Readme.txt b/cdf38_1-dist/cdfjava/cdfjson/Readme.txt new file mode 100755 index 0000000..8c40d8f --- /dev/null +++ b/cdf38_1-dist/cdfjava/cdfjson/Readme.txt @@ -0,0 +1,50 @@ +*************************************************************************** +* Please make sure that you have done the following before proceeding * +* with the CDF Json utilities: * +* * +* - Installed JDK 1.7 or later. * +* - Installed/built the CDF distribution package. * +* - On Windows, executed the setenv.bat located in the top * +* distribution to set up proper environment variables. On other * +* platforms, run the similar script in bin directory once the * +* distribution is built/installed. * +*************************************************************************** + +Instructions for using the CDF's Json programs +----------------------------------------------- + +1. Make sure that CDF distribution is installed. If downloading the source, + the CDF-JNI library needs to be built. + +2. Set the CLASSPATH environment variable to the directory that contains + cdfjava.jsr, cdfjson.jar and other jar files that comes from the CDF + distribution. + +3. CDF2Json: convert a CDF file into a CDF-specific Json form. + + To get the help information and valid arguments/options, enter: + + java CDF2Json + + Use the proper options to run the converter. + +4. Json2CDF: convert a CDF-specific Json file into a CDF file. + + To get the instructions and valid arguments/options, enter: + + java Json2CDF + + Use the proper options to run the converter. + +5. CDFJsonReader: display the data contents from a CDF-specific Json file + + To get the instructions and valid arguments/options, enter: + + java CDFJsonReader + + Use the proper options to run the reader. + +Please send any comments or questions to: + + NASA-CDF-Support@nasa.onmicrosoft.com + diff --git a/cdf38_1-dist/cdfjava/cdfjson/ShowCDFJson.java b/cdf38_1-dist/cdfjava/cdfjson/ShowCDFJson.java new file mode 100644 index 0000000..6613eb3 --- /dev/null +++ b/cdf38_1-dist/cdfjava/cdfjson/ShowCDFJson.java @@ -0,0 +1,66 @@ +import java.io.*; +import java.text.*; +import java.util.*; +import java.lang.*; +import java.lang.reflect.*; +import gsfc.nssdc.cdf.*; +import gsfc.nssdc.cdf.util.*; +import com.google.gson.*; + +/** + * This program demonstrates how to read the contents of a CDF file. + */ + +public class ShowCDFJson implements CDFConstants{ + + public static void main(String[] args) { + if (args.length == 0) { + System.out.println ("Java ShowCDFJson a_cdf_file "); + System.exit(1); + } + try { + CDF cdf = CDF.open(args[0]); + + Map acdf = cdf.readCDF(); + System.out.println("Total cdf size: " + acdf.size()); + Gson gson = new GsonBuilder().setPrettyPrinting().create(); + System.out.println(gson.toJson(acdf)); +/* + Map basic = cdf.readCDFInfo(); + System.out.println(gson.toJson(basic)); + + Map globals = cdf.readCDFGlobalAttributes(); + System.out.println(gson.toJson(globals)); + + Map spec = cdf.readCDFVariablesSpec(); + System.out.println(gson.toJson(spec)); + + Map meta = cdf.readCDFVariablesMetaData(); + System.out.println(gson.toJson(meta)); + + Map data = cdf.readCDFVariablesData(); + System.out.println(gson.toJson(data)); + + for (Object key : acdf.keySet()) { + if (((String)key).equals("Variables")) { + Map vars = (Map) acdf.get(key); + for (Object varName : vars.keySet()) { + System.out.println("****** Variable=>"+varName); + Map var = (Map) vars.get(varName); + System.out.println(" meta=>"+var.get("VarMetaData")); + System.out.println(" data=>"); + CDFUtils.printData(var.get("VarData")); + } + } else { + System.out.println(key + " - " + acdf.get(key)); + } + } + System.out.println(); +*/ + cdf.close(); + } catch (Exception ex) { + System.out.println("**** error: "+ex); + } + } + +} diff --git a/cdf38_1-dist/cdfjava/cdfjson/po.txt b/cdf38_1-dist/cdfjava/cdfjson/po.txt new file mode 100644 index 0000000..af9b337 --- /dev/null +++ b/cdf38_1-dist/cdfjava/cdfjson/po.txt @@ -0,0 +1,745 @@ +po_h7_pwi_00000000_v01.cdf: + CDFFileInfo: + FileVersion:3.8.0 + Format:SINGLE + Majority:ROW + Encoding:NETWORK + CDFglobalAttributes: + TITLE: + 0:"POLAR PWI HFWR" + Project: + 0:"ISTP>International Solar-Terrestrial Physics" + Discipline: + 0:"Space Physics>Magnetospheric Science" + Source_name: + 0:"PO>Polar Plasma Laboratory" + Data_type: + 0:"H7>High Resolution Data" + Descriptor: + 0:"PWI>Plasma Wave Instrument" + Data_version: + 0:" " + TEXT: + 0:"Reference:..Gurnett, D.A. et al, The Polar plasma wave instrument, Space Science Reviews, Vol. 71, pp. 597-622, 1995.GURNETT@IOWAVE.physics.uiowa.edu" + 1:"An FFT on 1024 values was used in calibrating the data; i.e., perform FFT, calibrate in frequency domain, perform inverse FFT to get calibrated time series." + 2:"Coordinate System Used: local magnetic field-aligned, a spacecraft centered coordinate system where Z is parallel to the local B-field determined from Polar MFE, X points outward and lies in the plane defined by the Z-axis and the radial vector from the earth to the spacecraft, and Y completes a right-handed system and points eastward. The X- and Z-axes are contained in the north-south plane." + 3:"Effective Bandwidth is 1.5*delta_f, where delta_f depends on the size of the FFT used to convert to the frequency domain, and delta_t." + 4:"This data comes is in snapshots of 31816 points per channel, every 9.2 seconds, where the duration of each snapshot is 0.045 seconds. Since Epoch time is in milliseconds, the times for the data points will not be unique unless the Delta_T in milliseconds is added to the Epoch time for the snapshot." + 5:"The data in this file will be in sets of 31744 (31*1024) points per channel because the FFT size does not come out even within the number of points per snapshot. To obtain the time for each point in the snapshot, increment each Epoch time after the first with Delta_T (in ms)." + MODS: + 0:"New versioned v04 data files were delivered to SPDF starting 2012/12/20" + ADID_ref: + 0:"NSSD0171" + Logical_file_id: + 0:"po_h7_pwi_00000000_v01" + Logical_source: + 0:"po_h7_pwi" + Logical_source_description: + 0:"Polar Plasma Wave Instrument, High Frequency Waveform Receiver, 6-channel (~1.5 usec resolution) fields" + PI_name: + 0:"D. Gurnett" + PI_affiliation: + 0:"U. Iowa" + Mission_group: + 0:"Polar" + Instrument_type: + 0:"Radio and Plasma Waves (space)" + TEXT_supplement_1: + 0:" " + spase_DatasetResourceID: + 0:"spase://NASA/NumericalData/POLAR/PWI/HFWR/25kHz/PT0.000014S" + CDFVariables: + Epoch: + VarDescription: + DataType:"CDF_EPOCH" + NumElements:1 + NumDims:0 + RecVariance:"VARY" + VarAttributes: + FIELDNAM:"Time" + CATDESC:"Time, start time of HFWR snapshot" + VAR_TYPE:"support_data" + VALIDMIN:"1996-02-27T00:00:00.000" + VALIDMAX:"2020-12-31T00:00:00.000" + MONOTON:"INCREASE" + UNITS:"ms" + LABLAXIS:"Epoch" + FILLVAL:"9999-12-31T23:59:59.999" + AVG_TYPE:" " + DICT_KEY:"time>epoch" + DISPLAY_TYPE:" " + VAR_NOTES:" Gain changes may occur at these times" + Delta_T: + VarDescription: + DataType:"CDF_REAL8" + NumElements:1 + NumDims:0 + RecVariance:"NOVARY" + NumWrittenRecords:1 + VarAttributes: + FIELDNAM:"Delta_T" + CATDESC:"Time, time between points" + VAR_TYPE:"support_data" + UNITS:"ms" + FORMAT:"E8.1" + DICT_KEY:"time" + VAR_NOTES:" " + VarData: + [0.014] + FilterMode: + VarDescription: + DataType:"CDF_INT4" + NumElements:1 + NumDims:0 + RecVariance:"NOVARY" + NumWrittenRecords:1 + VarAttributes: + FIELDNAM:"Filter Mode" + CATDESC:"Filter Mode (1 = 25 kHz, 2 = 16 kHz, 4 = 2 kHz, 8 = 250 Hz)" + VAR_TYPE:"support_data" + VALIDMIN:1 + VALIDMAX:8 + UNITS:" " + FORMAT:"I2" + FILLVAL:-2147483648 + AVG_TYPE:" " + DISPLAY_TYPE:" " + VAR_NOTES:" " + VarData: + [1] + FFT_size: + VarDescription: + DataType:"CDF_INT4" + NumElements:1 + NumDims:0 + RecVariance:"NOVARY" + NumWrittenRecords:1 + VarAttributes: + FIELDNAM:"FFT Size" + CATDESC:"Size of FFT used in calibration" + VAR_TYPE:"support_data" + VALIDMIN:0 + VALIDMAX:1024 + UNITS:" " + FORMAT:"I5" + FILLVAL:-2147483648 + AVG_TYPE:" " + DICT_KEY:"number" + DISPLAY_TYPE:" " + VAR_NOTES:" " + VarData: + [1024] + NUM_FFT: + VarDescription: + DataType:"CDF_INT4" + NumElements:1 + NumDims:0 + RecVariance:"NOVARY" + NumWrittenRecords:1 + VarAttributes: + FIELDNAM:"Num_Snap" + CATDESC:"Number of FFTs of size 1024 that were processed for one snapshot" + VAR_TYPE:"support_data" + VALIDMIN:0 + VALIDMAX:31 + UNITS:" " + FORMAT:"I4" + FILLVAL:-2147483648 + AVG_TYPE:" " + DICT_KEY:"number" + DISPLAY_TYPE:" " + VAR_NOTES:"NUM_FFT*FFT_size = #HFWR points for each channel" + VarData: + [31] + NUM_SNAP: + VarDescription: + DataType:"CDF_INT4" + NumElements:1 + NumDims:0 + RecVariance:"NOVARY" + NumWrittenRecords:1 + VarAttributes: + FIELDNAM:"Num_Snap" + CATDESC:"Number of snapshots of size 31816 that were processed for this file" + VAR_TYPE:"support_data" + VALIDMIN:0 + VALIDMAX:9392 + UNITS:" " + FORMAT:"I4" + FILLVAL:-2147483648 + AVG_TYPE:" " + DICT_KEY:"number" + DISPLAY_TYPE:" " + VAR_NOTES:" " + VarData: + [389] + Gain1: + VarDescription: + DataType:"CDF_BYTE" + NumElements:1 + NumDims:0 + RecVariance:"VARY" + VarAttributes: + FIELDNAM:"Gain for HFWR Channel 1 (Ex)" + CATDESC:"Channel 1 Gain (HFWR) " + VAR_TYPE:"data" + VALIDMIN:0 + VALIDMAX:30 + UNITS:" " + LABLAXIS:"Ex_Gain" + DEPEND_0:"Epoch" + FORMAT:"I2" + FILLVAL:-1 + AVG_TYPE:" " + DISPLAY_TYPE:"time_series" + VAR_NOTES:" " + Gain2: + VarDescription: + DataType:"CDF_BYTE" + NumElements:1 + NumDims:0 + RecVariance:"VARY" + VarAttributes: + FIELDNAM:"Gain for HFWR Channel 2 (Ey)" + CATDESC:"Channel 2 Gain (HFWR) " + VAR_TYPE:"data" + VALIDMIN:0 + VALIDMAX:30 + UNITS:" " + LABLAXIS:"Ey_Gain" + DEPEND_0:"Epoch" + FORMAT:"I3" + FILLVAL:-1 + AVG_TYPE:" " + DISPLAY_TYPE:"time_series" + VAR_NOTES:" " + Gain3: + VarDescription: + DataType:"CDF_BYTE" + NumElements:1 + NumDims:0 + RecVariance:"VARY" + VarAttributes: + FIELDNAM:"Gain for HFWR Channel 3 (Ez)" + CATDESC:"Channel 3 Gain (HFWR) " + VAR_TYPE:"data" + VALIDMIN:0 + VALIDMAX:30 + UNITS:" " + LABLAXIS:"Ez_Gain" + DEPEND_0:"Epoch" + FORMAT:"I3" + FILLVAL:-1 + AVG_TYPE:" " + DISPLAY_TYPE:"time_series" + VAR_NOTES:" " + MGain: + VarDescription: + DataType:"CDF_BYTE" + NumElements:1 + NumDims:0 + RecVariance:"VARY" + VarAttributes: + FIELDNAM:"Gain for HFWR M-Field (Bx, By, Bz)" + CATDESC:"M Gain (HFWR) " + VAR_TYPE:"data" + VALIDMIN:0 + VALIDMAX:30 + UNITS:" " + LABLAXIS:"HFWR_MGain" + DEPEND_0:"Epoch" + FORMAT:"I3" + FILLVAL:-1 + AVG_TYPE:" " + DISPLAY_TYPE:"time_series" + VAR_NOTES:"Applies to all 3 Magnetic Channels" + HFWR_Ex: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:1 + DimSizes:[31744] + RecVariance:"VARY" + DimVariances:["VARY"] + VarAttributes: + FIELDNAM:"HFWR Elec. Field Antenna Ex" + CATDESC:"[NO LIST] HFWR Elec Field Antenna Ex (perp and outward in Local-Field Aligned/LFA coords)" + VAR_TYPE:"data" + VALIDMIN:-10.0 + VALIDMAX:10.0 + UNITS:"mV/M" + LABLAXIS:"HFWR_Ex (LFA)" + DEPEND_0:"Epoch" + FORMAT:"E12.4" + FILLVAL:-1.0E+31 + AVG_TYPE:" " + DICT_KEY:"electric_field" + DISPLAY_TYPE:"spectrogram" + VAR_NOTES:"When FFT is applied, Filter Rolls off at 25 kHz" + DEPEND_1:"Data_No" + HFWR_Ey: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:1 + DimSizes:[31744] + RecVariance:"VARY" + DimVariances:["VARY"] + VarAttributes: + FIELDNAM:"HFWR Elec. Field Antenna Ey" + CATDESC:"[NO LIST] HFWR Elec Field Antenna Ey (perp and eastward in Local-Field Aligned/LFA coords)" + VAR_TYPE:"data" + VALIDMIN:-10.0 + VALIDMAX:10.0 + UNITS:"mV/M" + LABLAXIS:"HFWR_Ey (LFA)" + DEPEND_0:"Epoch" + FORMAT:"E12.4" + FILLVAL:-1.0E+31 + AVG_TYPE:" " + DICT_KEY:"electric_field" + DISPLAY_TYPE:"spectrogram" + VAR_NOTES:"When FFT is applied, Filter Rolls off at 25 kHz" + DEPEND_1:"Data_No" + HFWR_Ez: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:1 + DimSizes:[31744] + RecVariance:"VARY" + DimVariances:["VARY"] + VarAttributes: + FIELDNAM:"HFWR Elec. Field Antenna Ez" + CATDESC:"[NO LIST] HFWR Elec Field Antenna Ez (parallel in Local-Field Aligned/LFA coords)" + VAR_TYPE:"data" + VALIDMIN:-10.0 + VALIDMAX:10.0 + UNITS:"mV/M" + LABLAXIS:"HFWR_Ez (LFA)" + DEPEND_0:"Epoch" + FORMAT:"E12.4" + FILLVAL:-1.0E+31 + AVG_TYPE:" " + DICT_KEY:"electric_field" + DISPLAY_TYPE:"spectrogram" + VAR_NOTES:"When FFT is applied, Filter Rolls off at 25 kHz" + DEPEND_1:"Data_No" + HFWR_Bx: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:1 + DimSizes:[31744] + RecVariance:"VARY" + DimVariances:["VARY"] + VarAttributes: + FIELDNAM:"HFWR Mag. Field Antenna Bx" + CATDESC:"[NO LIST] HFWR Mag Field Antenna Bx (perp and outward in Local-Field Aligned/LFA coords)" + VAR_TYPE:"data" + VALIDMIN:-10.0 + VALIDMAX:10.0 + UNITS:"nT" + LABLAXIS:"HFWR_Bx (LFA)" + DEPEND_0:"Epoch" + FORMAT:"E12.4" + FILLVAL:-1.0E+31 + AVG_TYPE:" " + DICT_KEY:"magnetic_field" + DISPLAY_TYPE:"spectrogram" + VAR_NOTES:"When FFT is applied, Filter Rolls off at 25 kHz" + DEPEND_1:"Data_No" + HFWR_By: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:1 + DimSizes:[31744] + RecVariance:"VARY" + DimVariances:["VARY"] + VarAttributes: + FIELDNAM:"HFWR Mag. Field Antenna By" + CATDESC:"[NO LIST] HFWR Mag Field Antenna By (perp and eastward in Local-Field Aligned/LFA coords)" + VAR_TYPE:"data" + VALIDMIN:-10.0 + VALIDMAX:10.0 + UNITS:"nT" + LABLAXIS:"HFWR_By (LFA)" + DEPEND_0:"Epoch" + FORMAT:"E12.4" + FILLVAL:-1.0E+31 + AVG_TYPE:" " + DICT_KEY:"magnetic_field" + DISPLAY_TYPE:"spectrogram" + VAR_NOTES:"When FFT is applied, Filter Rolls off at 25 kHz" + DEPEND_1:"Data_No" + HFWR_Bz: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:1 + DimSizes:[31744] + RecVariance:"VARY" + DimVariances:["VARY"] + VarAttributes: + FIELDNAM:"HFWR Mag. Field Antenna Bz" + CATDESC:"[NO LIST] HFWR Mag Field Antenna Bz (parallel in Local-Field Aligned/LFA coords)" + VAR_TYPE:"data" + VALIDMIN:-10.0 + VALIDMAX:10.0 + UNITS:"nT" + LABLAXIS:"HFWR_Bz (LFA)" + DEPEND_0:"Epoch" + FORMAT:"E12.4" + FILLVAL:-1.0E+31 + AVG_TYPE:" " + DICT_KEY:"magnetic_field" + DISPLAY_TYPE:"spectrogram" + VAR_NOTES:"When FFT is applied, Filter Rolls off at 25 kHz" + DEPEND_1:"Data_No" + DATA_Q_Ex: + VarDescription: + DataType:"CDF_BYTE" + NumElements:1 + NumDims:1 + DimSizes:[31744] + RecVariance:"VARY" + DimVariances:["VARY"] + VarAttributes: + FIELDNAM:"DATA_QUALITY Ex" + CATDESC:"[NO LIST] Data Quality for Ex components(0 = OK, 1 = clipped or questionable)" + VAR_TYPE:"data" + VALIDMIN:0 + VALIDMAX:1 + UNITS:"(0=OK,1=Other)" + LABLAXIS:"Ex DQ" + DEPEND_0:"Epoch" + FORMAT:"I2" + FILLVAL:-1 + AVG_TYPE:" " + DICT_KEY:"flag" + DISPLAY_TYPE:"spectrogram" + VAR_NOTES:" " + DEPEND_1:"Data_No" + DATA_Q_Ey: + VarDescription: + DataType:"CDF_BYTE" + NumElements:1 + NumDims:1 + DimSizes:[31744] + RecVariance:"VARY" + DimVariances:["VARY"] + VarAttributes: + FIELDNAM:"DATA_QUALITY Ey" + CATDESC:"[NO LIST] Data Quality for Ey components(0 = OK, 1 = clipped or questionable)" + VAR_TYPE:"data" + VALIDMIN:0 + VALIDMAX:1 + UNITS:"(0=OK,1=Other)" + LABLAXIS:"Ey DQ" + DEPEND_0:"Epoch" + FORMAT:"I2" + FILLVAL:-1 + AVG_TYPE:" " + DICT_KEY:"flag" + DISPLAY_TYPE:"spectrogram" + VAR_NOTES:" " + DEPEND_1:"Data_No" + DATA_Q_Ez: + VarDescription: + DataType:"CDF_BYTE" + NumElements:1 + NumDims:1 + DimSizes:[31744] + RecVariance:"VARY" + DimVariances:["VARY"] + VarAttributes: + FIELDNAM:"DATA_QUALITY Ez" + CATDESC:"[NO LIST] Data Quality for Ez components(0 = OK, 1 = clipped or questionable)" + VAR_TYPE:"data" + VALIDMIN:0 + VALIDMAX:1 + UNITS:"(0=OK,1=Other)" + LABLAXIS:"Ez DQ" + DEPEND_0:"Epoch" + FORMAT:"I2" + FILLVAL:-1 + AVG_TYPE:" " + DICT_KEY:"flag" + DISPLAY_TYPE:"spectrogram" + VAR_NOTES:" " + DEPEND_1:"Data_No" + DATA_Q_Bx: + VarDescription: + DataType:"CDF_BYTE" + NumElements:1 + NumDims:1 + DimSizes:[31744] + RecVariance:"VARY" + DimVariances:["VARY"] + VarAttributes: + FIELDNAM:"DATA_QUALITY Bx" + CATDESC:"[NO LIST] Data Quality for Bx components(0 = OK, 1 = clipped or questionable)" + VAR_TYPE:"data" + VALIDMIN:0 + VALIDMAX:1 + UNITS:"(0=OK,1=Other)" + LABLAXIS:"Bx DQ" + DEPEND_0:"Epoch" + FORMAT:"I2" + FILLVAL:-1 + AVG_TYPE:" " + DICT_KEY:"flag" + DISPLAY_TYPE:"spectrogram" + VAR_NOTES:" " + DEPEND_1:"Data_No" + DATA_Q_By: + VarDescription: + DataType:"CDF_BYTE" + NumElements:1 + NumDims:1 + DimSizes:[31744] + RecVariance:"VARY" + DimVariances:["VARY"] + VarAttributes: + FIELDNAM:"DATA_QUALITY By" + CATDESC:"[NO LIST] Data Quality for By components(0 = OK, 1 = clipped or questionable)" + VAR_TYPE:"data" + VALIDMIN:0 + VALIDMAX:1 + UNITS:"(0=OK,1=Other)" + LABLAXIS:"By DQ" + DEPEND_0:"Epoch" + FORMAT:"I2" + FILLVAL:-1 + AVG_TYPE:" " + DICT_KEY:"flag" + DISPLAY_TYPE:"spectrogram" + VAR_NOTES:" " + DEPEND_1:"Data_No" + DATA_Q_Bz: + VarDescription: + DataType:"CDF_BYTE" + NumElements:1 + NumDims:1 + DimSizes:[31744] + RecVariance:"VARY" + DimVariances:["VARY"] + VarAttributes: + FIELDNAM:"DATA_QUALITY Bz" + CATDESC:"[NO LIST] Data Quality for Bz components(0 = OK, 1 = clipped or questionable)" + VAR_TYPE:"data" + VALIDMIN:0 + VALIDMAX:1 + UNITS:"(0=OK,1=Other)" + LABLAXIS:"Bz DQ" + DEPEND_0:"Epoch" + FORMAT:"I2" + FILLVAL:-1 + AVG_TYPE:" " + DICT_KEY:"flag" + DISPLAY_TYPE:"spectrogram" + VAR_NOTES:" " + DEPEND_1:"Data_No" + HFWR_Ex_Spec: + VarDescription: + DataType:"CDF_FLOAT" + NumElements:1 + NumDims:1 + DimSizes:[31744] + RecVariance:"VARY" + DimVariances:["VARY"] + VarAttributes: + FIELDNAM:"HFWR_Ex_Spec" + CATDESC:"[TEST-DO NOT USE] Ex Spectrogram from 512-element FFT" + VAR_TYPE:"data" + VALIDMIN:1.0E-20 + VALIDMAX:0.01 + SCALEMIN:1.0E-18 + SCALEMAX:0.00010 + UNITS:"(V/m)^2/Hz" + LABLAXIS:"Ex Spec" + DEPEND_0:"Epoch" + FORMAT:"E12.4" + FILLVAL:-1 + AVG_TYPE:" " + DICT_KEY:"flag" + DISPLAY_TYPE:"spectrogram" + VAR_NOTES:" " + VIRTUAL:"true" + FUNCTION:"fftPowerDelta512" + COMPONENT_0:"HFWR_Ex" + COMPONENT_1:"Delta_T" + HFWR_Ey_Spec: + VarDescription: + DataType:"CDF_FLOAT" + NumElements:1 + NumDims:1 + DimSizes:[31744] + RecVariance:"VARY" + DimVariances:["VARY"] + VarAttributes: + FIELDNAM:"HFWR_Ey_Spec" + CATDESC:"[TEST-DO NOT USE] Ey Spectrogram from 512-element FFT" + VAR_TYPE:"data" + VALIDMIN:1.0E-20 + VALIDMAX:0.01 + SCALEMIN:1.0E-18 + SCALEMAX:0.00010 + UNITS:"(V/m)^2/Hz" + LABLAXIS:"Ey Spec" + DEPEND_0:"Epoch" + FORMAT:"E12.4" + FILLVAL:-1.0E+31 + AVG_TYPE:" " + DICT_KEY:"flag" + DISPLAY_TYPE:"spectrogram" + VAR_NOTES:" " + VIRTUAL:"true" + FUNCTION:"fftPowerDelta512" + COMPONENT_0:"HFWR_Ey" + COMPONENT_1:"Delta_T" + HFWR_Ez_Spec: + VarDescription: + DataType:"CDF_FLOAT" + NumElements:1 + NumDims:1 + DimSizes:[31744] + RecVariance:"VARY" + DimVariances:["VARY"] + VarAttributes: + FIELDNAM:"HFWR_Ez_Spec" + CATDESC:"[TEST-DO NOT USE] Ez Spectrogram from 512-element FFT" + VAR_TYPE:"data" + VALIDMIN:1.0E-20 + VALIDMAX:0.01 + SCALEMIN:1.0E-18 + SCALEMAX:0.00010 + UNITS:"(V/m)^2/Hz" + LABLAXIS:"Ez Spec" + DEPEND_0:"Epoch" + FORMAT:"E12.4" + FILLVAL:-1.0E+31 + AVG_TYPE:" " + DICT_KEY:"flag" + DISPLAY_TYPE:"spectrogram" + VAR_NOTES:" " + DEPEND_1:"Data_No" + VIRTUAL:"true" + FUNCTION:"fftPowerDelta512" + COMPONENT_0:"HFWR_Ez" + COMPONENT_1:"Delta_T" + HFWR_Bx_Spec: + VarDescription: + DataType:"CDF_FLOAT" + NumElements:1 + NumDims:1 + DimSizes:[31744] + RecVariance:"VARY" + DimVariances:["VARY"] + VarAttributes: + FIELDNAM:"HFWR_Bx_Spec" + CATDESC:"[TEST-DO NOT USE] Bx Spectrogram from 512-element FFT" + VAR_TYPE:"data" + VALIDMIN:1.0E-16 + VALIDMAX:100.0 + SCALEMIN:1.0E-14 + SCALEMAX:1.0 + UNITS:"nT^2/Hz" + LABLAXIS:"Bx Spec" + DEPEND_0:"Epoch" + FORMAT:"E12.4" + FILLVAL:-1.0E+31 + AVG_TYPE:" " + DICT_KEY:"flag" + DISPLAY_TYPE:"spectrogram" + VAR_NOTES:" " + VIRTUAL:"true" + FUNCTION:"fftPowerDelta512" + COMPONENT_0:"HFWR_Bx" + COMPONENT_1:"Delta_T" + HFWR_By_Spec: + VarDescription: + DataType:"CDF_FLOAT" + NumElements:1 + NumDims:1 + DimSizes:[31744] + RecVariance:"VARY" + DimVariances:["VARY"] + VarAttributes: + FIELDNAM:"HFWR_By_Spec" + CATDESC:"[TEST-DO NOT USE] By Spectrogram from 512-element FFT" + VAR_TYPE:"data" + VALIDMIN:1.0E-16 + VALIDMAX:100.0 + SCALEMIN:1.0E-14 + SCALEMAX:1.0 + UNITS:"nT^2/Hz" + LABLAXIS:"By Spec" + DEPEND_0:"Epoch" + FORMAT:"E12.4" + FILLVAL:-1.0E+31 + AVG_TYPE:" " + DICT_KEY:"flag" + DISPLAY_TYPE:"spectrogram" + VAR_NOTES:" " + VIRTUAL:"true" + FUNCTION:"fftPowerDelta512" + COMPONENT_0:"HFWR_By" + COMPONENT_1:"Delta_T" + HFWR_Bz_Spec: + VarDescription: + DataType:"CDF_FLOAT" + NumElements:1 + NumDims:1 + DimSizes:[31744] + RecVariance:"VARY" + DimVariances:["VARY"] + VarAttributes: + FIELDNAM:"HFWR_Bz_Spec" + CATDESC:"[TEST-DO NOT USE] Bz Spectrogram from 512-element FFT" + VAR_TYPE:"data" + VALIDMIN:1.0E-16 + VALIDMAX:100.0 + SCALEMIN:1.0E-14 + SCALEMAX:1.0 + UNITS:"nT^2/Hz" + LABLAXIS:"Bz Spec" + DEPEND_0:"Epoch" + FORMAT:"E12.4" + FILLVAL:-1.0E+31 + AVG_TYPE:" " + DICT_KEY:"flag" + DISPLAY_TYPE:"spectrogram" + VAR_NOTES:" " + DEPEND_1:"Data_No" + VIRTUAL:"true" + FUNCTION:"fftPowerDelta512" + COMPONENT_0:"HFWR_Bz" + COMPONENT_1:"Delta_T" + Data_No: + VarDescription: + DataType:"CDF_INT4" + NumElements:1 + NumDims:1 + DimSizes:[31744] + RecVariance:"NOVARY" + DimVariances:["VARY"] + NumWrittenRecords:1 + VarAttributes: + FIELDNAM:"Data_No" + CATDESC:"Data_No: index of data in snapshot for HFWR and DQ values" + VAR_TYPE:"support_data" + VALIDMIN:0 + VALIDMAX:32000 + UNITS:"(31744 pts in 0.045s @ 9.2s)" + LABLAXIS:"Snapshot Point No" + FORMAT:"i6" + FILLVAL:-128 + DICT_KEY:"number" + SCALETYP:"linear" + VarData: + [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961, 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2983, 2984, 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, 2999, 3000, 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034, 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3077, 3078, 3079, 3080, 3081, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113, 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159, 3160, 3161, 3162, 3163, 3164, 3165, 3166, 3167, 3168, 3169, 3170, 3171, 3172, 3173, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420, 3421, 3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481, 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533, 3534, 3535, 3536, 3537, 3538, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646, 3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 3691, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703, 3704, 3705, 3706, 3707, 3708, 3709, 3710, 3711, 3712, 3713, 3714, 3715, 3716, 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3724, 3725, 3726, 3727, 3728, 3729, 3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, 3753, 3754, 3755, 3756, 3757, 3758, 3759, 3760, 3761, 3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773, 3774, 3775, 3776, 3777, 3778, 3779, 3780, 3781, 3782, 3783, 3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3839, 3840, 3841, 3842, 3843, 3844, 3845, 3846, 3847, 3848, 3849, 3850, 3851, 3852, 3853, 3854, 3855, 3856, 3857, 3858, 3859, 3860, 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3868, 3869, 3870, 3871, 3872, 3873, 3874, 3875, 3876, 3877, 3878, 3879, 3880, 3881, 3882, 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, 3891, 3892, 3893, 3894, 3895, 3896, 3897, 3898, 3899, 3900, 3901, 3902, 3903, 3904, 3905, 3906, 3907, 3908, 3909, 3910, 3911, 3912, 3913, 3914, 3915, 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, 3949, 3950, 3951, 3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3973, 3974, 3975, 3976, 3977, 3978, 3979, 3980, 3981, 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 3992, 3993, 3994, 3995, 3996, 3997, 3998, 3999, 4000, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4008, 4009, 4010, 4011, 4012, 4013, 4014, 4015, 4016, 4017, 4018, 4019, 4020, 4021, 4022, 4023, 4024, 4025, 4026, 4027, 4028, 4029, 4030, 4031, 4032, 4033, 4034, 4035, 4036, 4037, 4038, 4039, 4040, 4041, 4042, 4043, 4044, 4045, 4046, 4047, 4048, 4049, 4050, 4051, 4052, 4053, 4054, 4055, 4056, 4057, 4058, 4059, 4060, 4061, 4062, 4063, 4064, 4065, 4066, 4067, 4068, 4069, 4070, 4071, 4072, 4073, 4074, 4075, 4076, 4077, 4078, 4079, 4080, 4081, 4082, 4083, 4084, 4085, 4086, 4087, 4088, 4089, 4090, 4091, 4092, 4093, 4094, 4095, 4096, 4097, 4098, 4099, 4100, 4101, 4102, 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111, 4112, 4113, 4114, 4115, 4116, 4117, 4118, 4119, 4120, 4121, 4122, 4123, 4124, 4125, 4126, 4127, 4128, 4129, 4130, 4131, 4132, 4133, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4142, 4143, 4144, 4145, 4146, 4147, 4148, 4149, 4150, 4151, 4152, 4153, 4154, 4155, 4156, 4157, 4158, 4159, 4160, 4161, 4162, 4163, 4164, 4165, 4166, 4167, 4168, 4169, 4170, 4171, 4172, 4173, 4174, 4175, 4176, 4177, 4178, 4179, 4180, 4181, 4182, 4183, 4184, 4185, 4186, 4187, 4188, 4189, 4190, 4191, 4192, 4193, 4194, 4195, 4196, 4197, 4198, 4199, 4200, 4201, 4202, 4203, 4204, 4205, 4206, 4207, 4208, 4209, 4210, 4211, 4212, 4213, 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4221, 4222, 4223, 4224, 4225, 4226, 4227, 4228, 4229, 4230, 4231, 4232, 4233, 4234, 4235, 4236, 4237, 4238, 4239, 4240, 4241, 4242, 4243, 4244, 4245, 4246, 4247, 4248, 4249, 4250, 4251, 4252, 4253, 4254, 4255, 4256, 4257, 4258, 4259, 4260, 4261, 4262, 4263, 4264, 4265, 4266, 4267, 4268, 4269, 4270, 4271, 4272, 4273, 4274, 4275, 4276, 4277, 4278, 4279, 4280, 4281, 4282, 4283, 4284, 4285, 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4293, 4294, 4295, 4296, 4297, 4298, 4299, 4300, 4301, 4302, 4303, 4304, 4305, 4306, 4307, 4308, 4309, 4310, 4311, 4312, 4313, 4314, 4315, 4316, 4317, 4318, 4319, 4320, 4321, 4322, 4323, 4324, 4325, 4326, 4327, 4328, 4329, 4330, 4331, 4332, 4333, 4334, 4335, 4336, 4337, 4338, 4339, 4340, 4341, 4342, 4343, 4344, 4345, 4346, 4347, 4348, 4349, 4350, 4351, 4352, 4353, 4354, 4355, 4356, 4357, 4358, 4359, 4360, 4361, 4362, 4363, 4364, 4365, 4366, 4367, 4368, 4369, 4370, 4371, 4372, 4373, 4374, 4375, 4376, 4377, 4378, 4379, 4380, 4381, 4382, 4383, 4384, 4385, 4386, 4387, 4388, 4389, 4390, 4391, 4392, 4393, 4394, 4395, 4396, 4397, 4398, 4399, 4400, 4401, 4402, 4403, 4404, 4405, 4406, 4407, 4408, 4409, 4410, 4411, 4412, 4413, 4414, 4415, 4416, 4417, 4418, 4419, 4420, 4421, 4422, 4423, 4424, 4425, 4426, 4427, 4428, 4429, 4430, 4431, 4432, 4433, 4434, 4435, 4436, 4437, 4438, 4439, 4440, 4441, 4442, 4443, 4444, 4445, 4446, 4447, 4448, 4449, 4450, 4451, 4452, 4453, 4454, 4455, 4456, 4457, 4458, 4459, 4460, 4461, 4462, 4463, 4464, 4465, 4466, 4467, 4468, 4469, 4470, 4471, 4472, 4473, 4474, 4475, 4476, 4477, 4478, 4479, 4480, 4481, 4482, 4483, 4484, 4485, 4486, 4487, 4488, 4489, 4490, 4491, 4492, 4493, 4494, 4495, 4496, 4497, 4498, 4499, 4500, 4501, 4502, 4503, 4504, 4505, 4506, 4507, 4508, 4509, 4510, 4511, 4512, 4513, 4514, 4515, 4516, 4517, 4518, 4519, 4520, 4521, 4522, 4523, 4524, 4525, 4526, 4527, 4528, 4529, 4530, 4531, 4532, 4533, 4534, 4535, 4536, 4537, 4538, 4539, 4540, 4541, 4542, 4543, 4544, 4545, 4546, 4547, 4548, 4549, 4550, 4551, 4552, 4553, 4554, 4555, 4556, 4557, 4558, 4559, 4560, 4561, 4562, 4563, 4564, 4565, 4566, 4567, 4568, 4569, 4570, 4571, 4572, 4573, 4574, 4575, 4576, 4577, 4578, 4579, 4580, 4581, 4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4591, 4592, 4593, 4594, 4595, 4596, 4597, 4598, 4599, 4600, 4601, 4602, 4603, 4604, 4605, 4606, 4607, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4626, 4627, 4628, 4629, 4630, 4631, 4632, 4633, 4634, 4635, 4636, 4637, 4638, 4639, 4640, 4641, 4642, 4643, 4644, 4645, 4646, 4647, 4648, 4649, 4650, 4651, 4652, 4653, 4654, 4655, 4656, 4657, 4658, 4659, 4660, 4661, 4662, 4663, 4664, 4665, 4666, 4667, 4668, 4669, 4670, 4671, 4672, 4673, 4674, 4675, 4676, 4677, 4678, 4679, 4680, 4681, 4682, 4683, 4684, 4685, 4686, 4687, 4688, 4689, 4690, 4691, 4692, 4693, 4694, 4695, 4696, 4697, 4698, 4699, 4700, 4701, 4702, 4703, 4704, 4705, 4706, 4707, 4708, 4709, 4710, 4711, 4712, 4713, 4714, 4715, 4716, 4717, 4718, 4719, 4720, 4721, 4722, 4723, 4724, 4725, 4726, 4727, 4728, 4729, 4730, 4731, 4732, 4733, 4734, 4735, 4736, 4737, 4738, 4739, 4740, 4741, 4742, 4743, 4744, 4745, 4746, 4747, 4748, 4749, 4750, 4751, 4752, 4753, 4754, 4755, 4756, 4757, 4758, 4759, 4760, 4761, 4762, 4763, 4764, 4765, 4766, 4767, 4768, 4769, 4770, 4771, 4772, 4773, 4774, 4775, 4776, 4777, 4778, 4779, 4780, 4781, 4782, 4783, 4784, 4785, 4786, 4787, 4788, 4789, 4790, 4791, 4792, 4793, 4794, 4795, 4796, 4797, 4798, 4799, 4800, 4801, 4802, 4803, 4804, 4805, 4806, 4807, 4808, 4809, 4810, 4811, 4812, 4813, 4814, 4815, 4816, 4817, 4818, 4819, 4820, 4821, 4822, 4823, 4824, 4825, 4826, 4827, 4828, 4829, 4830, 4831, 4832, 4833, 4834, 4835, 4836, 4837, 4838, 4839, 4840, 4841, 4842, 4843, 4844, 4845, 4846, 4847, 4848, 4849, 4850, 4851, 4852, 4853, 4854, 4855, 4856, 4857, 4858, 4859, 4860, 4861, 4862, 4863, 4864, 4865, 4866, 4867, 4868, 4869, 4870, 4871, 4872, 4873, 4874, 4875, 4876, 4877, 4878, 4879, 4880, 4881, 4882, 4883, 4884, 4885, 4886, 4887, 4888, 4889, 4890, 4891, 4892, 4893, 4894, 4895, 4896, 4897, 4898, 4899, 4900, 4901, 4902, 4903, 4904, 4905, 4906, 4907, 4908, 4909, 4910, 4911, 4912, 4913, 4914, 4915, 4916, 4917, 4918, 4919, 4920, 4921, 4922, 4923, 4924, 4925, 4926, 4927, 4928, 4929, 4930, 4931, 4932, 4933, 4934, 4935, 4936, 4937, 4938, 4939, 4940, 4941, 4942, 4943, 4944, 4945, 4946, 4947, 4948, 4949, 4950, 4951, 4952, 4953, 4954, 4955, 4956, 4957, 4958, 4959, 4960, 4961, 4962, 4963, 4964, 4965, 4966, 4967, 4968, 4969, 4970, 4971, 4972, 4973, 4974, 4975, 4976, 4977, 4978, 4979, 4980, 4981, 4982, 4983, 4984, 4985, 4986, 4987, 4988, 4989, 4990, 4991, 4992, 4993, 4994, 4995, 4996, 4997, 4998, 4999, 5000, 5001, 5002, 5003, 5004, 5005, 5006, 5007, 5008, 5009, 5010, 5011, 5012, 5013, 5014, 5015, 5016, 5017, 5018, 5019, 5020, 5021, 5022, 5023, 5024, 5025, 5026, 5027, 5028, 5029, 5030, 5031, 5032, 5033, 5034, 5035, 5036, 5037, 5038, 5039, 5040, 5041, 5042, 5043, 5044, 5045, 5046, 5047, 5048, 5049, 5050, 5051, 5052, 5053, 5054, 5055, 5056, 5057, 5058, 5059, 5060, 5061, 5062, 5063, 5064, 5065, 5066, 5067, 5068, 5069, 5070, 5071, 5072, 5073, 5074, 5075, 5076, 5077, 5078, 5079, 5080, 5081, 5082, 5083, 5084, 5085, 5086, 5087, 5088, 5089, 5090, 5091, 5092, 5093, 5094, 5095, 5096, 5097, 5098, 5099, 5100, 5101, 5102, 5103, 5104, 5105, 5106, 5107, 5108, 5109, 5110, 5111, 5112, 5113, 5114, 5115, 5116, 5117, 5118, 5119, 5120, 5121, 5122, 5123, 5124, 5125, 5126, 5127, 5128, 5129, 5130, 5131, 5132, 5133, 5134, 5135, 5136, 5137, 5138, 5139, 5140, 5141, 5142, 5143, 5144, 5145, 5146, 5147, 5148, 5149, 5150, 5151, 5152, 5153, 5154, 5155, 5156, 5157, 5158, 5159, 5160, 5161, 5162, 5163, 5164, 5165, 5166, 5167, 5168, 5169, 5170, 5171, 5172, 5173, 5174, 5175, 5176, 5177, 5178, 5179, 5180, 5181, 5182, 5183, 5184, 5185, 5186, 5187, 5188, 5189, 5190, 5191, 5192, 5193, 5194, 5195, 5196, 5197, 5198, 5199, 5200, 5201, 5202, 5203, 5204, 5205, 5206, 5207, 5208, 5209, 5210, 5211, 5212, 5213, 5214, 5215, 5216, 5217, 5218, 5219, 5220, 5221, 5222, 5223, 5224, 5225, 5226, 5227, 5228, 5229, 5230, 5231, 5232, 5233, 5234, 5235, 5236, 5237, 5238, 5239, 5240, 5241, 5242, 5243, 5244, 5245, 5246, 5247, 5248, 5249, 5250, 5251, 5252, 5253, 5254, 5255, 5256, 5257, 5258, 5259, 5260, 5261, 5262, 5263, 5264, 5265, 5266, 5267, 5268, 5269, 5270, 5271, 5272, 5273, 5274, 5275, 5276, 5277, 5278, 5279, 5280, 5281, 5282, 5283, 5284, 5285, 5286, 5287, 5288, 5289, 5290, 5291, 5292, 5293, 5294, 5295, 5296, 5297, 5298, 5299, 5300, 5301, 5302, 5303, 5304, 5305, 5306, 5307, 5308, 5309, 5310, 5311, 5312, 5313, 5314, 5315, 5316, 5317, 5318, 5319, 5320, 5321, 5322, 5323, 5324, 5325, 5326, 5327, 5328, 5329, 5330, 5331, 5332, 5333, 5334, 5335, 5336, 5337, 5338, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 5346, 5347, 5348, 5349, 5350, 5351, 5352, 5353, 5354, 5355, 5356, 5357, 5358, 5359, 5360, 5361, 5362, 5363, 5364, 5365, 5366, 5367, 5368, 5369, 5370, 5371, 5372, 5373, 5374, 5375, 5376, 5377, 5378, 5379, 5380, 5381, 5382, 5383, 5384, 5385, 5386, 5387, 5388, 5389, 5390, 5391, 5392, 5393, 5394, 5395, 5396, 5397, 5398, 5399, 5400, 5401, 5402, 5403, 5404, 5405, 5406, 5407, 5408, 5409, 5410, 5411, 5412, 5413, 5414, 5415, 5416, 5417, 5418, 5419, 5420, 5421, 5422, 5423, 5424, 5425, 5426, 5427, 5428, 5429, 5430, 5431, 5432, 5433, 5434, 5435, 5436, 5437, 5438, 5439, 5440, 5441, 5442, 5443, 5444, 5445, 5446, 5447, 5448, 5449, 5450, 5451, 5452, 5453, 5454, 5455, 5456, 5457, 5458, 5459, 5460, 5461, 5462, 5463, 5464, 5465, 5466, 5467, 5468, 5469, 5470, 5471, 5472, 5473, 5474, 5475, 5476, 5477, 5478, 5479, 5480, 5481, 5482, 5483, 5484, 5485, 5486, 5487, 5488, 5489, 5490, 5491, 5492, 5493, 5494, 5495, 5496, 5497, 5498, 5499, 5500, 5501, 5502, 5503, 5504, 5505, 5506, 5507, 5508, 5509, 5510, 5511, 5512, 5513, 5514, 5515, 5516, 5517, 5518, 5519, 5520, 5521, 5522, 5523, 5524, 5525, 5526, 5527, 5528, 5529, 5530, 5531, 5532, 5533, 5534, 5535, 5536, 5537, 5538, 5539, 5540, 5541, 5542, 5543, 5544, 5545, 5546, 5547, 5548, 5549, 5550, 5551, 5552, 5553, 5554, 5555, 5556, 5557, 5558, 5559, 5560, 5561, 5562, 5563, 5564, 5565, 5566, 5567, 5568, 5569, 5570, 5571, 5572, 5573, 5574, 5575, 5576, 5577, 5578, 5579, 5580, 5581, 5582, 5583, 5584, 5585, 5586, 5587, 5588, 5589, 5590, 5591, 5592, 5593, 5594, 5595, 5596, 5597, 5598, 5599, 5600, 5601, 5602, 5603, 5604, 5605, 5606, 5607, 5608, 5609, 5610, 5611, 5612, 5613, 5614, 5615, 5616, 5617, 5618, 5619, 5620, 5621, 5622, 5623, 5624, 5625, 5626, 5627, 5628, 5629, 5630, 5631, 5632, 5633, 5634, 5635, 5636, 5637, 5638, 5639, 5640, 5641, 5642, 5643, 5644, 5645, 5646, 5647, 5648, 5649, 5650, 5651, 5652, 5653, 5654, 5655, 5656, 5657, 5658, 5659, 5660, 5661, 5662, 5663, 5664, 5665, 5666, 5667, 5668, 5669, 5670, 5671, 5672, 5673, 5674, 5675, 5676, 5677, 5678, 5679, 5680, 5681, 5682, 5683, 5684, 5685, 5686, 5687, 5688, 5689, 5690, 5691, 5692, 5693, 5694, 5695, 5696, 5697, 5698, 5699, 5700, 5701, 5702, 5703, 5704, 5705, 5706, 5707, 5708, 5709, 5710, 5711, 5712, 5713, 5714, 5715, 5716, 5717, 5718, 5719, 5720, 5721, 5722, 5723, 5724, 5725, 5726, 5727, 5728, 5729, 5730, 5731, 5732, 5733, 5734, 5735, 5736, 5737, 5738, 5739, 5740, 5741, 5742, 5743, 5744, 5745, 5746, 5747, 5748, 5749, 5750, 5751, 5752, 5753, 5754, 5755, 5756, 5757, 5758, 5759, 5760, 5761, 5762, 5763, 5764, 5765, 5766, 5767, 5768, 5769, 5770, 5771, 5772, 5773, 5774, 5775, 5776, 5777, 5778, 5779, 5780, 5781, 5782, 5783, 5784, 5785, 5786, 5787, 5788, 5789, 5790, 5791, 5792, 5793, 5794, 5795, 5796, 5797, 5798, 5799, 5800, 5801, 5802, 5803, 5804, 5805, 5806, 5807, 5808, 5809, 5810, 5811, 5812, 5813, 5814, 5815, 5816, 5817, 5818, 5819, 5820, 5821, 5822, 5823, 5824, 5825, 5826, 5827, 5828, 5829, 5830, 5831, 5832, 5833, 5834, 5835, 5836, 5837, 5838, 5839, 5840, 5841, 5842, 5843, 5844, 5845, 5846, 5847, 5848, 5849, 5850, 5851, 5852, 5853, 5854, 5855, 5856, 5857, 5858, 5859, 5860, 5861, 5862, 5863, 5864, 5865, 5866, 5867, 5868, 5869, 5870, 5871, 5872, 5873, 5874, 5875, 5876, 5877, 5878, 5879, 5880, 5881, 5882, 5883, 5884, 5885, 5886, 5887, 5888, 5889, 5890, 5891, 5892, 5893, 5894, 5895, 5896, 5897, 5898, 5899, 5900, 5901, 5902, 5903, 5904, 5905, 5906, 5907, 5908, 5909, 5910, 5911, 5912, 5913, 5914, 5915, 5916, 5917, 5918, 5919, 5920, 5921, 5922, 5923, 5924, 5925, 5926, 5927, 5928, 5929, 5930, 5931, 5932, 5933, 5934, 5935, 5936, 5937, 5938, 5939, 5940, 5941, 5942, 5943, 5944, 5945, 5946, 5947, 5948, 5949, 5950, 5951, 5952, 5953, 5954, 5955, 5956, 5957, 5958, 5959, 5960, 5961, 5962, 5963, 5964, 5965, 5966, 5967, 5968, 5969, 5970, 5971, 5972, 5973, 5974, 5975, 5976, 5977, 5978, 5979, 5980, 5981, 5982, 5983, 5984, 5985, 5986, 5987, 5988, 5989, 5990, 5991, 5992, 5993, 5994, 5995, 5996, 5997, 5998, 5999, 6000, 6001, 6002, 6003, 6004, 6005, 6006, 6007, 6008, 6009, 6010, 6011, 6012, 6013, 6014, 6015, 6016, 6017, 6018, 6019, 6020, 6021, 6022, 6023, 6024, 6025, 6026, 6027, 6028, 6029, 6030, 6031, 6032, 6033, 6034, 6035, 6036, 6037, 6038, 6039, 6040, 6041, 6042, 6043, 6044, 6045, 6046, 6047, 6048, 6049, 6050, 6051, 6052, 6053, 6054, 6055, 6056, 6057, 6058, 6059, 6060, 6061, 6062, 6063, 6064, 6065, 6066, 6067, 6068, 6069, 6070, 6071, 6072, 6073, 6074, 6075, 6076, 6077, 6078, 6079, 6080, 6081, 6082, 6083, 6084, 6085, 6086, 6087, 6088, 6089, 6090, 6091, 6092, 6093, 6094, 6095, 6096, 6097, 6098, 6099, 6100, 6101, 6102, 6103, 6104, 6105, 6106, 6107, 6108, 6109, 6110, 6111, 6112, 6113, 6114, 6115, 6116, 6117, 6118, 6119, 6120, 6121, 6122, 6123, 6124, 6125, 6126, 6127, 6128, 6129, 6130, 6131, 6132, 6133, 6134, 6135, 6136, 6137, 6138, 6139, 6140, 6141, 6142, 6143, 6144, 6145, 6146, 6147, 6148, 6149, 6150, 6151, 6152, 6153, 6154, 6155, 6156, 6157, 6158, 6159, 6160, 6161, 6162, 6163, 6164, 6165, 6166, 6167, 6168, 6169, 6170, 6171, 6172, 6173, 6174, 6175, 6176, 6177, 6178, 6179, 6180, 6181, 6182, 6183, 6184, 6185, 6186, 6187, 6188, 6189, 6190, 6191, 6192, 6193, 6194, 6195, 6196, 6197, 6198, 6199, 6200, 6201, 6202, 6203, 6204, 6205, 6206, 6207, 6208, 6209, 6210, 6211, 6212, 6213, 6214, 6215, 6216, 6217, 6218, 6219, 6220, 6221, 6222, 6223, 6224, 6225, 6226, 6227, 6228, 6229, 6230, 6231, 6232, 6233, 6234, 6235, 6236, 6237, 6238, 6239, 6240, 6241, 6242, 6243, 6244, 6245, 6246, 6247, 6248, 6249, 6250, 6251, 6252, 6253, 6254, 6255, 6256, 6257, 6258, 6259, 6260, 6261, 6262, 6263, 6264, 6265, 6266, 6267, 6268, 6269, 6270, 6271, 6272, 6273, 6274, 6275, 6276, 6277, 6278, 6279, 6280, 6281, 6282, 6283, 6284, 6285, 6286, 6287, 6288, 6289, 6290, 6291, 6292, 6293, 6294, 6295, 6296, 6297, 6298, 6299, 6300, 6301, 6302, 6303, 6304, 6305, 6306, 6307, 6308, 6309, 6310, 6311, 6312, 6313, 6314, 6315, 6316, 6317, 6318, 6319, 6320, 6321, 6322, 6323, 6324, 6325, 6326, 6327, 6328, 6329, 6330, 6331, 6332, 6333, 6334, 6335, 6336, 6337, 6338, 6339, 6340, 6341, 6342, 6343, 6344, 6345, 6346, 6347, 6348, 6349, 6350, 6351, 6352, 6353, 6354, 6355, 6356, 6357, 6358, 6359, 6360, 6361, 6362, 6363, 6364, 6365, 6366, 6367, 6368, 6369, 6370, 6371, 6372, 6373, 6374, 6375, 6376, 6377, 6378, 6379, 6380, 6381, 6382, 6383, 6384, 6385, 6386, 6387, 6388, 6389, 6390, 6391, 6392, 6393, 6394, 6395, 6396, 6397, 6398, 6399, 6400, 6401, 6402, 6403, 6404, 6405, 6406, 6407, 6408, 6409, 6410, 6411, 6412, 6413, 6414, 6415, 6416, 6417, 6418, 6419, 6420, 6421, 6422, 6423, 6424, 6425, 6426, 6427, 6428, 6429, 6430, 6431, 6432, 6433, 6434, 6435, 6436, 6437, 6438, 6439, 6440, 6441, 6442, 6443, 6444, 6445, 6446, 6447, 6448, 6449, 6450, 6451, 6452, 6453, 6454, 6455, 6456, 6457, 6458, 6459, 6460, 6461, 6462, 6463, 6464, 6465, 6466, 6467, 6468, 6469, 6470, 6471, 6472, 6473, 6474, 6475, 6476, 6477, 6478, 6479, 6480, 6481, 6482, 6483, 6484, 6485, 6486, 6487, 6488, 6489, 6490, 6491, 6492, 6493, 6494, 6495, 6496, 6497, 6498, 6499, 6500, 6501, 6502, 6503, 6504, 6505, 6506, 6507, 6508, 6509, 6510, 6511, 6512, 6513, 6514, 6515, 6516, 6517, 6518, 6519, 6520, 6521, 6522, 6523, 6524, 6525, 6526, 6527, 6528, 6529, 6530, 6531, 6532, 6533, 6534, 6535, 6536, 6537, 6538, 6539, 6540, 6541, 6542, 6543, 6544, 6545, 6546, 6547, 6548, 6549, 6550, 6551, 6552, 6553, 6554, 6555, 6556, 6557, 6558, 6559, 6560, 6561, 6562, 6563, 6564, 6565, 6566, 6567, 6568, 6569, 6570, 6571, 6572, 6573, 6574, 6575, 6576, 6577, 6578, 6579, 6580, 6581, 6582, 6583, 6584, 6585, 6586, 6587, 6588, 6589, 6590, 6591, 6592, 6593, 6594, 6595, 6596, 6597, 6598, 6599, 6600, 6601, 6602, 6603, 6604, 6605, 6606, 6607, 6608, 6609, 6610, 6611, 6612, 6613, 6614, 6615, 6616, 6617, 6618, 6619, 6620, 6621, 6622, 6623, 6624, 6625, 6626, 6627, 6628, 6629, 6630, 6631, 6632, 6633, 6634, 6635, 6636, 6637, 6638, 6639, 6640, 6641, 6642, 6643, 6644, 6645, 6646, 6647, 6648, 6649, 6650, 6651, 6652, 6653, 6654, 6655, 6656, 6657, 6658, 6659, 6660, 6661, 6662, 6663, 6664, 6665, 6666, 6667, 6668, 6669, 6670, 6671, 6672, 6673, 6674, 6675, 6676, 6677, 6678, 6679, 6680, 6681, 6682, 6683, 6684, 6685, 6686, 6687, 6688, 6689, 6690, 6691, 6692, 6693, 6694, 6695, 6696, 6697, 6698, 6699, 6700, 6701, 6702, 6703, 6704, 6705, 6706, 6707, 6708, 6709, 6710, 6711, 6712, 6713, 6714, 6715, 6716, 6717, 6718, 6719, 6720, 6721, 6722, 6723, 6724, 6725, 6726, 6727, 6728, 6729, 6730, 6731, 6732, 6733, 6734, 6735, 6736, 6737, 6738, 6739, 6740, 6741, 6742, 6743, 6744, 6745, 6746, 6747, 6748, 6749, 6750, 6751, 6752, 6753, 6754, 6755, 6756, 6757, 6758, 6759, 6760, 6761, 6762, 6763, 6764, 6765, 6766, 6767, 6768, 6769, 6770, 6771, 6772, 6773, 6774, 6775, 6776, 6777, 6778, 6779, 6780, 6781, 6782, 6783, 6784, 6785, 6786, 6787, 6788, 6789, 6790, 6791, 6792, 6793, 6794, 6795, 6796, 6797, 6798, 6799, 6800, 6801, 6802, 6803, 6804, 6805, 6806, 6807, 6808, 6809, 6810, 6811, 6812, 6813, 6814, 6815, 6816, 6817, 6818, 6819, 6820, 6821, 6822, 6823, 6824, 6825, 6826, 6827, 6828, 6829, 6830, 6831, 6832, 6833, 6834, 6835, 6836, 6837, 6838, 6839, 6840, 6841, 6842, 6843, 6844, 6845, 6846, 6847, 6848, 6849, 6850, 6851, 6852, 6853, 6854, 6855, 6856, 6857, 6858, 6859, 6860, 6861, 6862, 6863, 6864, 6865, 6866, 6867, 6868, 6869, 6870, 6871, 6872, 6873, 6874, 6875, 6876, 6877, 6878, 6879, 6880, 6881, 6882, 6883, 6884, 6885, 6886, 6887, 6888, 6889, 6890, 6891, 6892, 6893, 6894, 6895, 6896, 6897, 6898, 6899, 6900, 6901, 6902, 6903, 6904, 6905, 6906, 6907, 6908, 6909, 6910, 6911, 6912, 6913, 6914, 6915, 6916, 6917, 6918, 6919, 6920, 6921, 6922, 6923, 6924, 6925, 6926, 6927, 6928, 6929, 6930, 6931, 6932, 6933, 6934, 6935, 6936, 6937, 6938, 6939, 6940, 6941, 6942, 6943, 6944, 6945, 6946, 6947, 6948, 6949, 6950, 6951, 6952, 6953, 6954, 6955, 6956, 6957, 6958, 6959, 6960, 6961, 6962, 6963, 6964, 6965, 6966, 6967, 6968, 6969, 6970, 6971, 6972, 6973, 6974, 6975, 6976, 6977, 6978, 6979, 6980, 6981, 6982, 6983, 6984, 6985, 6986, 6987, 6988, 6989, 6990, 6991, 6992, 6993, 6994, 6995, 6996, 6997, 6998, 6999, 7000, 7001, 7002, 7003, 7004, 7005, 7006, 7007, 7008, 7009, 7010, 7011, 7012, 7013, 7014, 7015, 7016, 7017, 7018, 7019, 7020, 7021, 7022, 7023, 7024, 7025, 7026, 7027, 7028, 7029, 7030, 7031, 7032, 7033, 7034, 7035, 7036, 7037, 7038, 7039, 7040, 7041, 7042, 7043, 7044, 7045, 7046, 7047, 7048, 7049, 7050, 7051, 7052, 7053, 7054, 7055, 7056, 7057, 7058, 7059, 7060, 7061, 7062, 7063, 7064, 7065, 7066, 7067, 7068, 7069, 7070, 7071, 7072, 7073, 7074, 7075, 7076, 7077, 7078, 7079, 7080, 7081, 7082, 7083, 7084, 7085, 7086, 7087, 7088, 7089, 7090, 7091, 7092, 7093, 7094, 7095, 7096, 7097, 7098, 7099, 7100, 7101, 7102, 7103, 7104, 7105, 7106, 7107, 7108, 7109, 7110, 7111, 7112, 7113, 7114, 7115, 7116, 7117, 7118, 7119, 7120, 7121, 7122, 7123, 7124, 7125, 7126, 7127, 7128, 7129, 7130, 7131, 7132, 7133, 7134, 7135, 7136, 7137, 7138, 7139, 7140, 7141, 7142, 7143, 7144, 7145, 7146, 7147, 7148, 7149, 7150, 7151, 7152, 7153, 7154, 7155, 7156, 7157, 7158, 7159, 7160, 7161, 7162, 7163, 7164, 7165, 7166, 7167, 7168, 7169, 7170, 7171, 7172, 7173, 7174, 7175, 7176, 7177, 7178, 7179, 7180, 7181, 7182, 7183, 7184, 7185, 7186, 7187, 7188, 7189, 7190, 7191, 7192, 7193, 7194, 7195, 7196, 7197, 7198, 7199, 7200, 7201, 7202, 7203, 7204, 7205, 7206, 7207, 7208, 7209, 7210, 7211, 7212, 7213, 7214, 7215, 7216, 7217, 7218, 7219, 7220, 7221, 7222, 7223, 7224, 7225, 7226, 7227, 7228, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7239, 7240, 7241, 7242, 7243, 7244, 7245, 7246, 7247, 7248, 7249, 7250, 7251, 7252, 7253, 7254, 7255, 7256, 7257, 7258, 7259, 7260, 7261, 7262, 7263, 7264, 7265, 7266, 7267, 7268, 7269, 7270, 7271, 7272, 7273, 7274, 7275, 7276, 7277, 7278, 7279, 7280, 7281, 7282, 7283, 7284, 7285, 7286, 7287, 7288, 7289, 7290, 7291, 7292, 7293, 7294, 7295, 7296, 7297, 7298, 7299, 7300, 7301, 7302, 7303, 7304, 7305, 7306, 7307, 7308, 7309, 7310, 7311, 7312, 7313, 7314, 7315, 7316, 7317, 7318, 7319, 7320, 7321, 7322, 7323, 7324, 7325, 7326, 7327, 7328, 7329, 7330, 7331, 7332, 7333, 7334, 7335, 7336, 7337, 7338, 7339, 7340, 7341, 7342, 7343, 7344, 7345, 7346, 7347, 7348, 7349, 7350, 7351, 7352, 7353, 7354, 7355, 7356, 7357, 7358, 7359, 7360, 7361, 7362, 7363, 7364, 7365, 7366, 7367, 7368, 7369, 7370, 7371, 7372, 7373, 7374, 7375, 7376, 7377, 7378, 7379, 7380, 7381, 7382, 7383, 7384, 7385, 7386, 7387, 7388, 7389, 7390, 7391, 7392, 7393, 7394, 7395, 7396, 7397, 7398, 7399, 7400, 7401, 7402, 7403, 7404, 7405, 7406, 7407, 7408, 7409, 7410, 7411, 7412, 7413, 7414, 7415, 7416, 7417, 7418, 7419, 7420, 7421, 7422, 7423, 7424, 7425, 7426, 7427, 7428, 7429, 7430, 7431, 7432, 7433, 7434, 7435, 7436, 7437, 7438, 7439, 7440, 7441, 7442, 7443, 7444, 7445, 7446, 7447, 7448, 7449, 7450, 7451, 7452, 7453, 7454, 7455, 7456, 7457, 7458, 7459, 7460, 7461, 7462, 7463, 7464, 7465, 7466, 7467, 7468, 7469, 7470, 7471, 7472, 7473, 7474, 7475, 7476, 7477, 7478, 7479, 7480, 7481, 7482, 7483, 7484, 7485, 7486, 7487, 7488, 7489, 7490, 7491, 7492, 7493, 7494, 7495, 7496, 7497, 7498, 7499, 7500, 7501, 7502, 7503, 7504, 7505, 7506, 7507, 7508, 7509, 7510, 7511, 7512, 7513, 7514, 7515, 7516, 7517, 7518, 7519, 7520, 7521, 7522, 7523, 7524, 7525, 7526, 7527, 7528, 7529, 7530, 7531, 7532, 7533, 7534, 7535, 7536, 7537, 7538, 7539, 7540, 7541, 7542, 7543, 7544, 7545, 7546, 7547, 7548, 7549, 7550, 7551, 7552, 7553, 7554, 7555, 7556, 7557, 7558, 7559, 7560, 7561, 7562, 7563, 7564, 7565, 7566, 7567, 7568, 7569, 7570, 7571, 7572, 7573, 7574, 7575, 7576, 7577, 7578, 7579, 7580, 7581, 7582, 7583, 7584, 7585, 7586, 7587, 7588, 7589, 7590, 7591, 7592, 7593, 7594, 7595, 7596, 7597, 7598, 7599, 7600, 7601, 7602, 7603, 7604, 7605, 7606, 7607, 7608, 7609, 7610, 7611, 7612, 7613, 7614, 7615, 7616, 7617, 7618, 7619, 7620, 7621, 7622, 7623, 7624, 7625, 7626, 7627, 7628, 7629, 7630, 7631, 7632, 7633, 7634, 7635, 7636, 7637, 7638, 7639, 7640, 7641, 7642, 7643, 7644, 7645, 7646, 7647, 7648, 7649, 7650, 7651, 7652, 7653, 7654, 7655, 7656, 7657, 7658, 7659, 7660, 7661, 7662, 7663, 7664, 7665, 7666, 7667, 7668, 7669, 7670, 7671, 7672, 7673, 7674, 7675, 7676, 7677, 7678, 7679, 7680, 7681, 7682, 7683, 7684, 7685, 7686, 7687, 7688, 7689, 7690, 7691, 7692, 7693, 7694, 7695, 7696, 7697, 7698, 7699, 7700, 7701, 7702, 7703, 7704, 7705, 7706, 7707, 7708, 7709, 7710, 7711, 7712, 7713, 7714, 7715, 7716, 7717, 7718, 7719, 7720, 7721, 7722, 7723, 7724, 7725, 7726, 7727, 7728, 7729, 7730, 7731, 7732, 7733, 7734, 7735, 7736, 7737, 7738, 7739, 7740, 7741, 7742, 7743, 7744, 7745, 7746, 7747, 7748, 7749, 7750, 7751, 7752, 7753, 7754, 7755, 7756, 7757, 7758, 7759, 7760, 7761, 7762, 7763, 7764, 7765, 7766, 7767, 7768, 7769, 7770, 7771, 7772, 7773, 7774, 7775, 7776, 7777, 7778, 7779, 7780, 7781, 7782, 7783, 7784, 7785, 7786, 7787, 7788, 7789, 7790, 7791, 7792, 7793, 7794, 7795, 7796, 7797, 7798, 7799, 7800, 7801, 7802, 7803, 7804, 7805, 7806, 7807, 7808, 7809, 7810, 7811, 7812, 7813, 7814, 7815, 7816, 7817, 7818, 7819, 7820, 7821, 7822, 7823, 7824, 7825, 7826, 7827, 7828, 7829, 7830, 7831, 7832, 7833, 7834, 7835, 7836, 7837, 7838, 7839, 7840, 7841, 7842, 7843, 7844, 7845, 7846, 7847, 7848, 7849, 7850, 7851, 7852, 7853, 7854, 7855, 7856, 7857, 7858, 7859, 7860, 7861, 7862, 7863, 7864, 7865, 7866, 7867, 7868, 7869, 7870, 7871, 7872, 7873, 7874, 7875, 7876, 7877, 7878, 7879, 7880, 7881, 7882, 7883, 7884, 7885, 7886, 7887, 7888, 7889, 7890, 7891, 7892, 7893, 7894, 7895, 7896, 7897, 7898, 7899, 7900, 7901, 7902, 7903, 7904, 7905, 7906, 7907, 7908, 7909, 7910, 7911, 7912, 7913, 7914, 7915, 7916, 7917, 7918, 7919, 7920, 7921, 7922, 7923, 7924, 7925, 7926, 7927, 7928, 7929, 7930, 7931, 7932, 7933, 7934, 7935, 7936, 7937, 7938, 7939, 7940, 7941, 7942, 7943, 7944, 7945, 7946, 7947, 7948, 7949, 7950, 7951, 7952, 7953, 7954, 7955, 7956, 7957, 7958, 7959, 7960, 7961, 7962, 7963, 7964, 7965, 7966, 7967, 7968, 7969, 7970, 7971, 7972, 7973, 7974, 7975, 7976, 7977, 7978, 7979, 7980, 7981, 7982, 7983, 7984, 7985, 7986, 7987, 7988, 7989, 7990, 7991, 7992, 7993, 7994, 7995, 7996, 7997, 7998, 7999, 8000, 8001, 8002, 8003, 8004, 8005, 8006, 8007, 8008, 8009, 8010, 8011, 8012, 8013, 8014, 8015, 8016, 8017, 8018, 8019, 8020, 8021, 8022, 8023, 8024, 8025, 8026, 8027, 8028, 8029, 8030, 8031, 8032, 8033, 8034, 8035, 8036, 8037, 8038, 8039, 8040, 8041, 8042, 8043, 8044, 8045, 8046, 8047, 8048, 8049, 8050, 8051, 8052, 8053, 8054, 8055, 8056, 8057, 8058, 8059, 8060, 8061, 8062, 8063, 8064, 8065, 8066, 8067, 8068, 8069, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8077, 8078, 8079, 8080, 8081, 8082, 8083, 8084, 8085, 8086, 8087, 8088, 8089, 8090, 8091, 8092, 8093, 8094, 8095, 8096, 8097, 8098, 8099, 8100, 8101, 8102, 8103, 8104, 8105, 8106, 8107, 8108, 8109, 8110, 8111, 8112, 8113, 8114, 8115, 8116, 8117, 8118, 8119, 8120, 8121, 8122, 8123, 8124, 8125, 8126, 8127, 8128, 8129, 8130, 8131, 8132, 8133, 8134, 8135, 8136, 8137, 8138, 8139, 8140, 8141, 8142, 8143, 8144, 8145, 8146, 8147, 8148, 8149, 8150, 8151, 8152, 8153, 8154, 8155, 8156, 8157, 8158, 8159, 8160, 8161, 8162, 8163, 8164, 8165, 8166, 8167, 8168, 8169, 8170, 8171, 8172, 8173, 8174, 8175, 8176, 8177, 8178, 8179, 8180, 8181, 8182, 8183, 8184, 8185, 8186, 8187, 8188, 8189, 8190, 8191, 8192, 8193, 8194, 8195, 8196, 8197, 8198, 8199, 8200, 8201, 8202, 8203, 8204, 8205, 8206, 8207, 8208, 8209, 8210, 8211, 8212, 8213, 8214, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8223, 8224, 8225, 8226, 8227, 8228, 8229, 8230, 8231, 8232, 8233, 8234, 8235, 8236, 8237, 8238, 8239, 8240, 8241, 8242, 8243, 8244, 8245, 8246, 8247, 8248, 8249, 8250, 8251, 8252, 8253, 8254, 8255, 8256, 8257, 8258, 8259, 8260, 8261, 8262, 8263, 8264, 8265, 8266, 8267, 8268, 8269, 8270, 8271, 8272, 8273, 8274, 8275, 8276, 8277, 8278, 8279, 8280, 8281, 8282, 8283, 8284, 8285, 8286, 8287, 8288, 8289, 8290, 8291, 8292, 8293, 8294, 8295, 8296, 8297, 8298, 8299, 8300, 8301, 8302, 8303, 8304, 8305, 8306, 8307, 8308, 8309, 8310, 8311, 8312, 8313, 8314, 8315, 8316, 8317, 8318, 8319, 8320, 8321, 8322, 8323, 8324, 8325, 8326, 8327, 8328, 8329, 8330, 8331, 8332, 8333, 8334, 8335, 8336, 8337, 8338, 8339, 8340, 8341, 8342, 8343, 8344, 8345, 8346, 8347, 8348, 8349, 8350, 8351, 8352, 8353, 8354, 8355, 8356, 8357, 8358, 8359, 8360, 8361, 8362, 8363, 8364, 8365, 8366, 8367, 8368, 8369, 8370, 8371, 8372, 8373, 8374, 8375, 8376, 8377, 8378, 8379, 8380, 8381, 8382, 8383, 8384, 8385, 8386, 8387, 8388, 8389, 8390, 8391, 8392, 8393, 8394, 8395, 8396, 8397, 8398, 8399, 8400, 8401, 8402, 8403, 8404, 8405, 8406, 8407, 8408, 8409, 8410, 8411, 8412, 8413, 8414, 8415, 8416, 8417, 8418, 8419, 8420, 8421, 8422, 8423, 8424, 8425, 8426, 8427, 8428, 8429, 8430, 8431, 8432, 8433, 8434, 8435, 8436, 8437, 8438, 8439, 8440, 8441, 8442, 8443, 8444, 8445, 8446, 8447, 8448, 8449, 8450, 8451, 8452, 8453, 8454, 8455, 8456, 8457, 8458, 8459, 8460, 8461, 8462, 8463, 8464, 8465, 8466, 8467, 8468, 8469, 8470, 8471, 8472, 8473, 8474, 8475, 8476, 8477, 8478, 8479, 8480, 8481, 8482, 8483, 8484, 8485, 8486, 8487, 8488, 8489, 8490, 8491, 8492, 8493, 8494, 8495, 8496, 8497, 8498, 8499, 8500, 8501, 8502, 8503, 8504, 8505, 8506, 8507, 8508, 8509, 8510, 8511, 8512, 8513, 8514, 8515, 8516, 8517, 8518, 8519, 8520, 8521, 8522, 8523, 8524, 8525, 8526, 8527, 8528, 8529, 8530, 8531, 8532, 8533, 8534, 8535, 8536, 8537, 8538, 8539, 8540, 8541, 8542, 8543, 8544, 8545, 8546, 8547, 8548, 8549, 8550, 8551, 8552, 8553, 8554, 8555, 8556, 8557, 8558, 8559, 8560, 8561, 8562, 8563, 8564, 8565, 8566, 8567, 8568, 8569, 8570, 8571, 8572, 8573, 8574, 8575, 8576, 8577, 8578, 8579, 8580, 8581, 8582, 8583, 8584, 8585, 8586, 8587, 8588, 8589, 8590, 8591, 8592, 8593, 8594, 8595, 8596, 8597, 8598, 8599, 8600, 8601, 8602, 8603, 8604, 8605, 8606, 8607, 8608, 8609, 8610, 8611, 8612, 8613, 8614, 8615, 8616, 8617, 8618, 8619, 8620, 8621, 8622, 8623, 8624, 8625, 8626, 8627, 8628, 8629, 8630, 8631, 8632, 8633, 8634, 8635, 8636, 8637, 8638, 8639, 8640, 8641, 8642, 8643, 8644, 8645, 8646, 8647, 8648, 8649, 8650, 8651, 8652, 8653, 8654, 8655, 8656, 8657, 8658, 8659, 8660, 8661, 8662, 8663, 8664, 8665, 8666, 8667, 8668, 8669, 8670, 8671, 8672, 8673, 8674, 8675, 8676, 8677, 8678, 8679, 8680, 8681, 8682, 8683, 8684, 8685, 8686, 8687, 8688, 8689, 8690, 8691, 8692, 8693, 8694, 8695, 8696, 8697, 8698, 8699, 8700, 8701, 8702, 8703, 8704, 8705, 8706, 8707, 8708, 8709, 8710, 8711, 8712, 8713, 8714, 8715, 8716, 8717, 8718, 8719, 8720, 8721, 8722, 8723, 8724, 8725, 8726, 8727, 8728, 8729, 8730, 8731, 8732, 8733, 8734, 8735, 8736, 8737, 8738, 8739, 8740, 8741, 8742, 8743, 8744, 8745, 8746, 8747, 8748, 8749, 8750, 8751, 8752, 8753, 8754, 8755, 8756, 8757, 8758, 8759, 8760, 8761, 8762, 8763, 8764, 8765, 8766, 8767, 8768, 8769, 8770, 8771, 8772, 8773, 8774, 8775, 8776, 8777, 8778, 8779, 8780, 8781, 8782, 8783, 8784, 8785, 8786, 8787, 8788, 8789, 8790, 8791, 8792, 8793, 8794, 8795, 8796, 8797, 8798, 8799, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8807, 8808, 8809, 8810, 8811, 8812, 8813, 8814, 8815, 8816, 8817, 8818, 8819, 8820, 8821, 8822, 8823, 8824, 8825, 8826, 8827, 8828, 8829, 8830, 8831, 8832, 8833, 8834, 8835, 8836, 8837, 8838, 8839, 8840, 8841, 8842, 8843, 8844, 8845, 8846, 8847, 8848, 8849, 8850, 8851, 8852, 8853, 8854, 8855, 8856, 8857, 8858, 8859, 8860, 8861, 8862, 8863, 8864, 8865, 8866, 8867, 8868, 8869, 8870, 8871, 8872, 8873, 8874, 8875, 8876, 8877, 8878, 8879, 8880, 8881, 8882, 8883, 8884, 8885, 8886, 8887, 8888, 8889, 8890, 8891, 8892, 8893, 8894, 8895, 8896, 8897, 8898, 8899, 8900, 8901, 8902, 8903, 8904, 8905, 8906, 8907, 8908, 8909, 8910, 8911, 8912, 8913, 8914, 8915, 8916, 8917, 8918, 8919, 8920, 8921, 8922, 8923, 8924, 8925, 8926, 8927, 8928, 8929, 8930, 8931, 8932, 8933, 8934, 8935, 8936, 8937, 8938, 8939, 8940, 8941, 8942, 8943, 8944, 8945, 8946, 8947, 8948, 8949, 8950, 8951, 8952, 8953, 8954, 8955, 8956, 8957, 8958, 8959, 8960, 8961, 8962, 8963, 8964, 8965, 8966, 8967, 8968, 8969, 8970, 8971, 8972, 8973, 8974, 8975, 8976, 8977, 8978, 8979, 8980, 8981, 8982, 8983, 8984, 8985, 8986, 8987, 8988, 8989, 8990, 8991, 8992, 8993, 8994, 8995, 8996, 8997, 8998, 8999, 9000, 9001, 9002, 9003, 9004, 9005, 9006, 9007, 9008, 9009, 9010, 9011, 9012, 9013, 9014, 9015, 9016, 9017, 9018, 9019, 9020, 9021, 9022, 9023, 9024, 9025, 9026, 9027, 9028, 9029, 9030, 9031, 9032, 9033, 9034, 9035, 9036, 9037, 9038, 9039, 9040, 9041, 9042, 9043, 9044, 9045, 9046, 9047, 9048, 9049, 9050, 9051, 9052, 9053, 9054, 9055, 9056, 9057, 9058, 9059, 9060, 9061, 9062, 9063, 9064, 9065, 9066, 9067, 9068, 9069, 9070, 9071, 9072, 9073, 9074, 9075, 9076, 9077, 9078, 9079, 9080, 9081, 9082, 9083, 9084, 9085, 9086, 9087, 9088, 9089, 9090, 9091, 9092, 9093, 9094, 9095, 9096, 9097, 9098, 9099, 9100, 9101, 9102, 9103, 9104, 9105, 9106, 9107, 9108, 9109, 9110, 9111, 9112, 9113, 9114, 9115, 9116, 9117, 9118, 9119, 9120, 9121, 9122, 9123, 9124, 9125, 9126, 9127, 9128, 9129, 9130, 9131, 9132, 9133, 9134, 9135, 9136, 9137, 9138, 9139, 9140, 9141, 9142, 9143, 9144, 9145, 9146, 9147, 9148, 9149, 9150, 9151, 9152, 9153, 9154, 9155, 9156, 9157, 9158, 9159, 9160, 9161, 9162, 9163, 9164, 9165, 9166, 9167, 9168, 9169, 9170, 9171, 9172, 9173, 9174, 9175, 9176, 9177, 9178, 9179, 9180, 9181, 9182, 9183, 9184, 9185, 9186, 9187, 9188, 9189, 9190, 9191, 9192, 9193, 9194, 9195, 9196, 9197, 9198, 9199, 9200, 9201, 9202, 9203, 9204, 9205, 9206, 9207, 9208, 9209, 9210, 9211, 9212, 9213, 9214, 9215, 9216, 9217, 9218, 9219, 9220, 9221, 9222, 9223, 9224, 9225, 9226, 9227, 9228, 9229, 9230, 9231, 9232, 9233, 9234, 9235, 9236, 9237, 9238, 9239, 9240, 9241, 9242, 9243, 9244, 9245, 9246, 9247, 9248, 9249, 9250, 9251, 9252, 9253, 9254, 9255, 9256, 9257, 9258, 9259, 9260, 9261, 9262, 9263, 9264, 9265, 9266, 9267, 9268, 9269, 9270, 9271, 9272, 9273, 9274, 9275, 9276, 9277, 9278, 9279, 9280, 9281, 9282, 9283, 9284, 9285, 9286, 9287, 9288, 9289, 9290, 9291, 9292, 9293, 9294, 9295, 9296, 9297, 9298, 9299, 9300, 9301, 9302, 9303, 9304, 9305, 9306, 9307, 9308, 9309, 9310, 9311, 9312, 9313, 9314, 9315, 9316, 9317, 9318, 9319, 9320, 9321, 9322, 9323, 9324, 9325, 9326, 9327, 9328, 9329, 9330, 9331, 9332, 9333, 9334, 9335, 9336, 9337, 9338, 9339, 9340, 9341, 9342, 9343, 9344, 9345, 9346, 9347, 9348, 9349, 9350, 9351, 9352, 9353, 9354, 9355, 9356, 9357, 9358, 9359, 9360, 9361, 9362, 9363, 9364, 9365, 9366, 9367, 9368, 9369, 9370, 9371, 9372, 9373, 9374, 9375, 9376, 9377, 9378, 9379, 9380, 9381, 9382, 9383, 9384, 9385, 9386, 9387, 9388, 9389, 9390, 9391, 9392, 9393, 9394, 9395, 9396, 9397, 9398, 9399, 9400, 9401, 9402, 9403, 9404, 9405, 9406, 9407, 9408, 9409, 9410, 9411, 9412, 9413, 9414, 9415, 9416, 9417, 9418, 9419, 9420, 9421, 9422, 9423, 9424, 9425, 9426, 9427, 9428, 9429, 9430, 9431, 9432, 9433, 9434, 9435, 9436, 9437, 9438, 9439, 9440, 9441, 9442, 9443, 9444, 9445, 9446, 9447, 9448, 9449, 9450, 9451, 9452, 9453, 9454, 9455, 9456, 9457, 9458, 9459, 9460, 9461, 9462, 9463, 9464, 9465, 9466, 9467, 9468, 9469, 9470, 9471, 9472, 9473, 9474, 9475, 9476, 9477, 9478, 9479, 9480, 9481, 9482, 9483, 9484, 9485, 9486, 9487, 9488, 9489, 9490, 9491, 9492, 9493, 9494, 9495, 9496, 9497, 9498, 9499, 9500, 9501, 9502, 9503, 9504, 9505, 9506, 9507, 9508, 9509, 9510, 9511, 9512, 9513, 9514, 9515, 9516, 9517, 9518, 9519, 9520, 9521, 9522, 9523, 9524, 9525, 9526, 9527, 9528, 9529, 9530, 9531, 9532, 9533, 9534, 9535, 9536, 9537, 9538, 9539, 9540, 9541, 9542, 9543, 9544, 9545, 9546, 9547, 9548, 9549, 9550, 9551, 9552, 9553, 9554, 9555, 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9581, 9582, 9583, 9584, 9585, 9586, 9587, 9588, 9589, 9590, 9591, 9592, 9593, 9594, 9595, 9596, 9597, 9598, 9599, 9600, 9601, 9602, 9603, 9604, 9605, 9606, 9607, 9608, 9609, 9610, 9611, 9612, 9613, 9614, 9615, 9616, 9617, 9618, 9619, 9620, 9621, 9622, 9623, 9624, 9625, 9626, 9627, 9628, 9629, 9630, 9631, 9632, 9633, 9634, 9635, 9636, 9637, 9638, 9639, 9640, 9641, 9642, 9643, 9644, 9645, 9646, 9647, 9648, 9649, 9650, 9651, 9652, 9653, 9654, 9655, 9656, 9657, 9658, 9659, 9660, 9661, 9662, 9663, 9664, 9665, 9666, 9667, 9668, 9669, 9670, 9671, 9672, 9673, 9674, 9675, 9676, 9677, 9678, 9679, 9680, 9681, 9682, 9683, 9684, 9685, 9686, 9687, 9688, 9689, 9690, 9691, 9692, 9693, 9694, 9695, 9696, 9697, 9698, 9699, 9700, 9701, 9702, 9703, 9704, 9705, 9706, 9707, 9708, 9709, 9710, 9711, 9712, 9713, 9714, 9715, 9716, 9717, 9718, 9719, 9720, 9721, 9722, 9723, 9724, 9725, 9726, 9727, 9728, 9729, 9730, 9731, 9732, 9733, 9734, 9735, 9736, 9737, 9738, 9739, 9740, 9741, 9742, 9743, 9744, 9745, 9746, 9747, 9748, 9749, 9750, 9751, 9752, 9753, 9754, 9755, 9756, 9757, 9758, 9759, 9760, 9761, 9762, 9763, 9764, 9765, 9766, 9767, 9768, 9769, 9770, 9771, 9772, 9773, 9774, 9775, 9776, 9777, 9778, 9779, 9780, 9781, 9782, 9783, 9784, 9785, 9786, 9787, 9788, 9789, 9790, 9791, 9792, 9793, 9794, 9795, 9796, 9797, 9798, 9799, 9800, 9801, 9802, 9803, 9804, 9805, 9806, 9807, 9808, 9809, 9810, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9820, 9821, 9822, 9823, 9824, 9825, 9826, 9827, 9828, 9829, 9830, 9831, 9832, 9833, 9834, 9835, 9836, 9837, 9838, 9839, 9840, 9841, 9842, 9843, 9844, 9845, 9846, 9847, 9848, 9849, 9850, 9851, 9852, 9853, 9854, 9855, 9856, 9857, 9858, 9859, 9860, 9861, 9862, 9863, 9864, 9865, 9866, 9867, 9868, 9869, 9870, 9871, 9872, 9873, 9874, 9875, 9876, 9877, 9878, 9879, 9880, 9881, 9882, 9883, 9884, 9885, 9886, 9887, 9888, 9889, 9890, 9891, 9892, 9893, 9894, 9895, 9896, 9897, 9898, 9899, 9900, 9901, 9902, 9903, 9904, 9905, 9906, 9907, 9908, 9909, 9910, 9911, 9912, 9913, 9914, 9915, 9916, 9917, 9918, 9919, 9920, 9921, 9922, 9923, 9924, 9925, 9926, 9927, 9928, 9929, 9930, 9931, 9932, 9933, 9934, 9935, 9936, 9937, 9938, 9939, 9940, 9941, 9942, 9943, 9944, 9945, 9946, 9947, 9948, 9949, 9950, 9951, 9952, 9953, 9954, 9955, 9956, 9957, 9958, 9959, 9960, 9961, 9962, 9963, 9964, 9965, 9966, 9967, 9968, 9969, 9970, 9971, 9972, 9973, 9974, 9975, 9976, 9977, 9978, 9979, 9980, 9981, 9982, 9983, 9984, 9985, 9986, 9987, 9988, 9989, 9990, 9991, 9992, 9993, 9994, 9995, 9996, 9997, 9998, 9999, 10000, 10001, 10002, 10003, 10004, 10005, 10006, 10007, 10008, 10009, 10010, 10011, 10012, 10013, 10014, 10015, 10016, 10017, 10018, 10019, 10020, 10021, 10022, 10023, 10024, 10025, 10026, 10027, 10028, 10029, 10030, 10031, 10032, 10033, 10034, 10035, 10036, 10037, 10038, 10039, 10040, 10041, 10042, 10043, 10044, 10045, 10046, 10047, 10048, 10049, 10050, 10051, 10052, 10053, 10054, 10055, 10056, 10057, 10058, 10059, 10060, 10061, 10062, 10063, 10064, 10065, 10066, 10067, 10068, 10069, 10070, 10071, 10072, 10073, 10074, 10075, 10076, 10077, 10078, 10079, 10080, 10081, 10082, 10083, 10084, 10085, 10086, 10087, 10088, 10089, 10090, 10091, 10092, 10093, 10094, 10095, 10096, 10097, 10098, 10099, 10100, 10101, 10102, 10103, 10104, 10105, 10106, 10107, 10108, 10109, 10110, 10111, 10112, 10113, 10114, 10115, 10116, 10117, 10118, 10119, 10120, 10121, 10122, 10123, 10124, 10125, 10126, 10127, 10128, 10129, 10130, 10131, 10132, 10133, 10134, 10135, 10136, 10137, 10138, 10139, 10140, 10141, 10142, 10143, 10144, 10145, 10146, 10147, 10148, 10149, 10150, 10151, 10152, 10153, 10154, 10155, 10156, 10157, 10158, 10159, 10160, 10161, 10162, 10163, 10164, 10165, 10166, 10167, 10168, 10169, 10170, 10171, 10172, 10173, 10174, 10175, 10176, 10177, 10178, 10179, 10180, 10181, 10182, 10183, 10184, 10185, 10186, 10187, 10188, 10189, 10190, 10191, 10192, 10193, 10194, 10195, 10196, 10197, 10198, 10199, 10200, 10201, 10202, 10203, 10204, 10205, 10206, 10207, 10208, 10209, 10210, 10211, 10212, 10213, 10214, 10215, 10216, 10217, 10218, 10219, 10220, 10221, 10222, 10223, 10224, 10225, 10226, 10227, 10228, 10229, 10230, 10231, 10232, 10233, 10234, 10235, 10236, 10237, 10238, 10239, 10240, 10241, 10242, 10243, 10244, 10245, 10246, 10247, 10248, 10249, 10250, 10251, 10252, 10253, 10254, 10255, 10256, 10257, 10258, 10259, 10260, 10261, 10262, 10263, 10264, 10265, 10266, 10267, 10268, 10269, 10270, 10271, 10272, 10273, 10274, 10275, 10276, 10277, 10278, 10279, 10280, 10281, 10282, 10283, 10284, 10285, 10286, 10287, 10288, 10289, 10290, 10291, 10292, 10293, 10294, 10295, 10296, 10297, 10298, 10299, 10300, 10301, 10302, 10303, 10304, 10305, 10306, 10307, 10308, 10309, 10310, 10311, 10312, 10313, 10314, 10315, 10316, 10317, 10318, 10319, 10320, 10321, 10322, 10323, 10324, 10325, 10326, 10327, 10328, 10329, 10330, 10331, 10332, 10333, 10334, 10335, 10336, 10337, 10338, 10339, 10340, 10341, 10342, 10343, 10344, 10345, 10346, 10347, 10348, 10349, 10350, 10351, 10352, 10353, 10354, 10355, 10356, 10357, 10358, 10359, 10360, 10361, 10362, 10363, 10364, 10365, 10366, 10367, 10368, 10369, 10370, 10371, 10372, 10373, 10374, 10375, 10376, 10377, 10378, 10379, 10380, 10381, 10382, 10383, 10384, 10385, 10386, 10387, 10388, 10389, 10390, 10391, 10392, 10393, 10394, 10395, 10396, 10397, 10398, 10399, 10400, 10401, 10402, 10403, 10404, 10405, 10406, 10407, 10408, 10409, 10410, 10411, 10412, 10413, 10414, 10415, 10416, 10417, 10418, 10419, 10420, 10421, 10422, 10423, 10424, 10425, 10426, 10427, 10428, 10429, 10430, 10431, 10432, 10433, 10434, 10435, 10436, 10437, 10438, 10439, 10440, 10441, 10442, 10443, 10444, 10445, 10446, 10447, 10448, 10449, 10450, 10451, 10452, 10453, 10454, 10455, 10456, 10457, 10458, 10459, 10460, 10461, 10462, 10463, 10464, 10465, 10466, 10467, 10468, 10469, 10470, 10471, 10472, 10473, 10474, 10475, 10476, 10477, 10478, 10479, 10480, 10481, 10482, 10483, 10484, 10485, 10486, 10487, 10488, 10489, 10490, 10491, 10492, 10493, 10494, 10495, 10496, 10497, 10498, 10499, 10500, 10501, 10502, 10503, 10504, 10505, 10506, 10507, 10508, 10509, 10510, 10511, 10512, 10513, 10514, 10515, 10516, 10517, 10518, 10519, 10520, 10521, 10522, 10523, 10524, 10525, 10526, 10527, 10528, 10529, 10530, 10531, 10532, 10533, 10534, 10535, 10536, 10537, 10538, 10539, 10540, 10541, 10542, 10543, 10544, 10545, 10546, 10547, 10548, 10549, 10550, 10551, 10552, 10553, 10554, 10555, 10556, 10557, 10558, 10559, 10560, 10561, 10562, 10563, 10564, 10565, 10566, 10567, 10568, 10569, 10570, 10571, 10572, 10573, 10574, 10575, 10576, 10577, 10578, 10579, 10580, 10581, 10582, 10583, 10584, 10585, 10586, 10587, 10588, 10589, 10590, 10591, 10592, 10593, 10594, 10595, 10596, 10597, 10598, 10599, 10600, 10601, 10602, 10603, 10604, 10605, 10606, 10607, 10608, 10609, 10610, 10611, 10612, 10613, 10614, 10615, 10616, 10617, 10618, 10619, 10620, 10621, 10622, 10623, 10624, 10625, 10626, 10627, 10628, 10629, 10630, 10631, 10632, 10633, 10634, 10635, 10636, 10637, 10638, 10639, 10640, 10641, 10642, 10643, 10644, 10645, 10646, 10647, 10648, 10649, 10650, 10651, 10652, 10653, 10654, 10655, 10656, 10657, 10658, 10659, 10660, 10661, 10662, 10663, 10664, 10665, 10666, 10667, 10668, 10669, 10670, 10671, 10672, 10673, 10674, 10675, 10676, 10677, 10678, 10679, 10680, 10681, 10682, 10683, 10684, 10685, 10686, 10687, 10688, 10689, 10690, 10691, 10692, 10693, 10694, 10695, 10696, 10697, 10698, 10699, 10700, 10701, 10702, 10703, 10704, 10705, 10706, 10707, 10708, 10709, 10710, 10711, 10712, 10713, 10714, 10715, 10716, 10717, 10718, 10719, 10720, 10721, 10722, 10723, 10724, 10725, 10726, 10727, 10728, 10729, 10730, 10731, 10732, 10733, 10734, 10735, 10736, 10737, 10738, 10739, 10740, 10741, 10742, 10743, 10744, 10745, 10746, 10747, 10748, 10749, 10750, 10751, 10752, 10753, 10754, 10755, 10756, 10757, 10758, 10759, 10760, 10761, 10762, 10763, 10764, 10765, 10766, 10767, 10768, 10769, 10770, 10771, 10772, 10773, 10774, 10775, 10776, 10777, 10778, 10779, 10780, 10781, 10782, 10783, 10784, 10785, 10786, 10787, 10788, 10789, 10790, 10791, 10792, 10793, 10794, 10795, 10796, 10797, 10798, 10799, 10800, 10801, 10802, 10803, 10804, 10805, 10806, 10807, 10808, 10809, 10810, 10811, 10812, 10813, 10814, 10815, 10816, 10817, 10818, 10819, 10820, 10821, 10822, 10823, 10824, 10825, 10826, 10827, 10828, 10829, 10830, 10831, 10832, 10833, 10834, 10835, 10836, 10837, 10838, 10839, 10840, 10841, 10842, 10843, 10844, 10845, 10846, 10847, 10848, 10849, 10850, 10851, 10852, 10853, 10854, 10855, 10856, 10857, 10858, 10859, 10860, 10861, 10862, 10863, 10864, 10865, 10866, 10867, 10868, 10869, 10870, 10871, 10872, 10873, 10874, 10875, 10876, 10877, 10878, 10879, 10880, 10881, 10882, 10883, 10884, 10885, 10886, 10887, 10888, 10889, 10890, 10891, 10892, 10893, 10894, 10895, 10896, 10897, 10898, 10899, 10900, 10901, 10902, 10903, 10904, 10905, 10906, 10907, 10908, 10909, 10910, 10911, 10912, 10913, 10914, 10915, 10916, 10917, 10918, 10919, 10920, 10921, 10922, 10923, 10924, 10925, 10926, 10927, 10928, 10929, 10930, 10931, 10932, 10933, 10934, 10935, 10936, 10937, 10938, 10939, 10940, 10941, 10942, 10943, 10944, 10945, 10946, 10947, 10948, 10949, 10950, 10951, 10952, 10953, 10954, 10955, 10956, 10957, 10958, 10959, 10960, 10961, 10962, 10963, 10964, 10965, 10966, 10967, 10968, 10969, 10970, 10971, 10972, 10973, 10974, 10975, 10976, 10977, 10978, 10979, 10980, 10981, 10982, 10983, 10984, 10985, 10986, 10987, 10988, 10989, 10990, 10991, 10992, 10993, 10994, 10995, 10996, 10997, 10998, 10999, 11000, 11001, 11002, 11003, 11004, 11005, 11006, 11007, 11008, 11009, 11010, 11011, 11012, 11013, 11014, 11015, 11016, 11017, 11018, 11019, 11020, 11021, 11022, 11023, 11024, 11025, 11026, 11027, 11028, 11029, 11030, 11031, 11032, 11033, 11034, 11035, 11036, 11037, 11038, 11039, 11040, 11041, 11042, 11043, 11044, 11045, 11046, 11047, 11048, 11049, 11050, 11051, 11052, 11053, 11054, 11055, 11056, 11057, 11058, 11059, 11060, 11061, 11062, 11063, 11064, 11065, 11066, 11067, 11068, 11069, 11070, 11071, 11072, 11073, 11074, 11075, 11076, 11077, 11078, 11079, 11080, 11081, 11082, 11083, 11084, 11085, 11086, 11087, 11088, 11089, 11090, 11091, 11092, 11093, 11094, 11095, 11096, 11097, 11098, 11099, 11100, 11101, 11102, 11103, 11104, 11105, 11106, 11107, 11108, 11109, 11110, 11111, 11112, 11113, 11114, 11115, 11116, 11117, 11118, 11119, 11120, 11121, 11122, 11123, 11124, 11125, 11126, 11127, 11128, 11129, 11130, 11131, 11132, 11133, 11134, 11135, 11136, 11137, 11138, 11139, 11140, 11141, 11142, 11143, 11144, 11145, 11146, 11147, 11148, 11149, 11150, 11151, 11152, 11153, 11154, 11155, 11156, 11157, 11158, 11159, 11160, 11161, 11162, 11163, 11164, 11165, 11166, 11167, 11168, 11169, 11170, 11171, 11172, 11173, 11174, 11175, 11176, 11177, 11178, 11179, 11180, 11181, 11182, 11183, 11184, 11185, 11186, 11187, 11188, 11189, 11190, 11191, 11192, 11193, 11194, 11195, 11196, 11197, 11198, 11199, 11200, 11201, 11202, 11203, 11204, 11205, 11206, 11207, 11208, 11209, 11210, 11211, 11212, 11213, 11214, 11215, 11216, 11217, 11218, 11219, 11220, 11221, 11222, 11223, 11224, 11225, 11226, 11227, 11228, 11229, 11230, 11231, 11232, 11233, 11234, 11235, 11236, 11237, 11238, 11239, 11240, 11241, 11242, 11243, 11244, 11245, 11246, 11247, 11248, 11249, 11250, 11251, 11252, 11253, 11254, 11255, 11256, 11257, 11258, 11259, 11260, 11261, 11262, 11263, 11264, 11265, 11266, 11267, 11268, 11269, 11270, 11271, 11272, 11273, 11274, 11275, 11276, 11277, 11278, 11279, 11280, 11281, 11282, 11283, 11284, 11285, 11286, 11287, 11288, 11289, 11290, 11291, 11292, 11293, 11294, 11295, 11296, 11297, 11298, 11299, 11300, 11301, 11302, 11303, 11304, 11305, 11306, 11307, 11308, 11309, 11310, 11311, 11312, 11313, 11314, 11315, 11316, 11317, 11318, 11319, 11320, 11321, 11322, 11323, 11324, 11325, 11326, 11327, 11328, 11329, 11330, 11331, 11332, 11333, 11334, 11335, 11336, 11337, 11338, 11339, 11340, 11341, 11342, 11343, 11344, 11345, 11346, 11347, 11348, 11349, 11350, 11351, 11352, 11353, 11354, 11355, 11356, 11357, 11358, 11359, 11360, 11361, 11362, 11363, 11364, 11365, 11366, 11367, 11368, 11369, 11370, 11371, 11372, 11373, 11374, 11375, 11376, 11377, 11378, 11379, 11380, 11381, 11382, 11383, 11384, 11385, 11386, 11387, 11388, 11389, 11390, 11391, 11392, 11393, 11394, 11395, 11396, 11397, 11398, 11399, 11400, 11401, 11402, 11403, 11404, 11405, 11406, 11407, 11408, 11409, 11410, 11411, 11412, 11413, 11414, 11415, 11416, 11417, 11418, 11419, 11420, 11421, 11422, 11423, 11424, 11425, 11426, 11427, 11428, 11429, 11430, 11431, 11432, 11433, 11434, 11435, 11436, 11437, 11438, 11439, 11440, 11441, 11442, 11443, 11444, 11445, 11446, 11447, 11448, 11449, 11450, 11451, 11452, 11453, 11454, 11455, 11456, 11457, 11458, 11459, 11460, 11461, 11462, 11463, 11464, 11465, 11466, 11467, 11468, 11469, 11470, 11471, 11472, 11473, 11474, 11475, 11476, 11477, 11478, 11479, 11480, 11481, 11482, 11483, 11484, 11485, 11486, 11487, 11488, 11489, 11490, 11491, 11492, 11493, 11494, 11495, 11496, 11497, 11498, 11499, 11500, 11501, 11502, 11503, 11504, 11505, 11506, 11507, 11508, 11509, 11510, 11511, 11512, 11513, 11514, 11515, 11516, 11517, 11518, 11519, 11520, 11521, 11522, 11523, 11524, 11525, 11526, 11527, 11528, 11529, 11530, 11531, 11532, 11533, 11534, 11535, 11536, 11537, 11538, 11539, 11540, 11541, 11542, 11543, 11544, 11545, 11546, 11547, 11548, 11549, 11550, 11551, 11552, 11553, 11554, 11555, 11556, 11557, 11558, 11559, 11560, 11561, 11562, 11563, 11564, 11565, 11566, 11567, 11568, 11569, 11570, 11571, 11572, 11573, 11574, 11575, 11576, 11577, 11578, 11579, 11580, 11581, 11582, 11583, 11584, 11585, 11586, 11587, 11588, 11589, 11590, 11591, 11592, 11593, 11594, 11595, 11596, 11597, 11598, 11599, 11600, 11601, 11602, 11603, 11604, 11605, 11606, 11607, 11608, 11609, 11610, 11611, 11612, 11613, 11614, 11615, 11616, 11617, 11618, 11619, 11620, 11621, 11622, 11623, 11624, 11625, 11626, 11627, 11628, 11629, 11630, 11631, 11632, 11633, 11634, 11635, 11636, 11637, 11638, 11639, 11640, 11641, 11642, 11643, 11644, 11645, 11646, 11647, 11648, 11649, 11650, 11651, 11652, 11653, 11654, 11655, 11656, 11657, 11658, 11659, 11660, 11661, 11662, 11663, 11664, 11665, 11666, 11667, 11668, 11669, 11670, 11671, 11672, 11673, 11674, 11675, 11676, 11677, 11678, 11679, 11680, 11681, 11682, 11683, 11684, 11685, 11686, 11687, 11688, 11689, 11690, 11691, 11692, 11693, 11694, 11695, 11696, 11697, 11698, 11699, 11700, 11701, 11702, 11703, 11704, 11705, 11706, 11707, 11708, 11709, 11710, 11711, 11712, 11713, 11714, 11715, 11716, 11717, 11718, 11719, 11720, 11721, 11722, 11723, 11724, 11725, 11726, 11727, 11728, 11729, 11730, 11731, 11732, 11733, 11734, 11735, 11736, 11737, 11738, 11739, 11740, 11741, 11742, 11743, 11744, 11745, 11746, 11747, 11748, 11749, 11750, 11751, 11752, 11753, 11754, 11755, 11756, 11757, 11758, 11759, 11760, 11761, 11762, 11763, 11764, 11765, 11766, 11767, 11768, 11769, 11770, 11771, 11772, 11773, 11774, 11775, 11776, 11777, 11778, 11779, 11780, 11781, 11782, 11783, 11784, 11785, 11786, 11787, 11788, 11789, 11790, 11791, 11792, 11793, 11794, 11795, 11796, 11797, 11798, 11799, 11800, 11801, 11802, 11803, 11804, 11805, 11806, 11807, 11808, 11809, 11810, 11811, 11812, 11813, 11814, 11815, 11816, 11817, 11818, 11819, 11820, 11821, 11822, 11823, 11824, 11825, 11826, 11827, 11828, 11829, 11830, 11831, 11832, 11833, 11834, 11835, 11836, 11837, 11838, 11839, 11840, 11841, 11842, 11843, 11844, 11845, 11846, 11847, 11848, 11849, 11850, 11851, 11852, 11853, 11854, 11855, 11856, 11857, 11858, 11859, 11860, 11861, 11862, 11863, 11864, 11865, 11866, 11867, 11868, 11869, 11870, 11871, 11872, 11873, 11874, 11875, 11876, 11877, 11878, 11879, 11880, 11881, 11882, 11883, 11884, 11885, 11886, 11887, 11888, 11889, 11890, 11891, 11892, 11893, 11894, 11895, 11896, 11897, 11898, 11899, 11900, 11901, 11902, 11903, 11904, 11905, 11906, 11907, 11908, 11909, 11910, 11911, 11912, 11913, 11914, 11915, 11916, 11917, 11918, 11919, 11920, 11921, 11922, 11923, 11924, 11925, 11926, 11927, 11928, 11929, 11930, 11931, 11932, 11933, 11934, 11935, 11936, 11937, 11938, 11939, 11940, 11941, 11942, 11943, 11944, 11945, 11946, 11947, 11948, 11949, 11950, 11951, 11952, 11953, 11954, 11955, 11956, 11957, 11958, 11959, 11960, 11961, 11962, 11963, 11964, 11965, 11966, 11967, 11968, 11969, 11970, 11971, 11972, 11973, 11974, 11975, 11976, 11977, 11978, 11979, 11980, 11981, 11982, 11983, 11984, 11985, 11986, 11987, 11988, 11989, 11990, 11991, 11992, 11993, 11994, 11995, 11996, 11997, 11998, 11999, 12000, 12001, 12002, 12003, 12004, 12005, 12006, 12007, 12008, 12009, 12010, 12011, 12012, 12013, 12014, 12015, 12016, 12017, 12018, 12019, 12020, 12021, 12022, 12023, 12024, 12025, 12026, 12027, 12028, 12029, 12030, 12031, 12032, 12033, 12034, 12035, 12036, 12037, 12038, 12039, 12040, 12041, 12042, 12043, 12044, 12045, 12046, 12047, 12048, 12049, 12050, 12051, 12052, 12053, 12054, 12055, 12056, 12057, 12058, 12059, 12060, 12061, 12062, 12063, 12064, 12065, 12066, 12067, 12068, 12069, 12070, 12071, 12072, 12073, 12074, 12075, 12076, 12077, 12078, 12079, 12080, 12081, 12082, 12083, 12084, 12085, 12086, 12087, 12088, 12089, 12090, 12091, 12092, 12093, 12094, 12095, 12096, 12097, 12098, 12099, 12100, 12101, 12102, 12103, 12104, 12105, 12106, 12107, 12108, 12109, 12110, 12111, 12112, 12113, 12114, 12115, 12116, 12117, 12118, 12119, 12120, 12121, 12122, 12123, 12124, 12125, 12126, 12127, 12128, 12129, 12130, 12131, 12132, 12133, 12134, 12135, 12136, 12137, 12138, 12139, 12140, 12141, 12142, 12143, 12144, 12145, 12146, 12147, 12148, 12149, 12150, 12151, 12152, 12153, 12154, 12155, 12156, 12157, 12158, 12159, 12160, 12161, 12162, 12163, 12164, 12165, 12166, 12167, 12168, 12169, 12170, 12171, 12172, 12173, 12174, 12175, 12176, 12177, 12178, 12179, 12180, 12181, 12182, 12183, 12184, 12185, 12186, 12187, 12188, 12189, 12190, 12191, 12192, 12193, 12194, 12195, 12196, 12197, 12198, 12199, 12200, 12201, 12202, 12203, 12204, 12205, 12206, 12207, 12208, 12209, 12210, 12211, 12212, 12213, 12214, 12215, 12216, 12217, 12218, 12219, 12220, 12221, 12222, 12223, 12224, 12225, 12226, 12227, 12228, 12229, 12230, 12231, 12232, 12233, 12234, 12235, 12236, 12237, 12238, 12239, 12240, 12241, 12242, 12243, 12244, 12245, 12246, 12247, 12248, 12249, 12250, 12251, 12252, 12253, 12254, 12255, 12256, 12257, 12258, 12259, 12260, 12261, 12262, 12263, 12264, 12265, 12266, 12267, 12268, 12269, 12270, 12271, 12272, 12273, 12274, 12275, 12276, 12277, 12278, 12279, 12280, 12281, 12282, 12283, 12284, 12285, 12286, 12287, 12288, 12289, 12290, 12291, 12292, 12293, 12294, 12295, 12296, 12297, 12298, 12299, 12300, 12301, 12302, 12303, 12304, 12305, 12306, 12307, 12308, 12309, 12310, 12311, 12312, 12313, 12314, 12315, 12316, 12317, 12318, 12319, 12320, 12321, 12322, 12323, 12324, 12325, 12326, 12327, 12328, 12329, 12330, 12331, 12332, 12333, 12334, 12335, 12336, 12337, 12338, 12339, 12340, 12341, 12342, 12343, 12344, 12345, 12346, 12347, 12348, 12349, 12350, 12351, 12352, 12353, 12354, 12355, 12356, 12357, 12358, 12359, 12360, 12361, 12362, 12363, 12364, 12365, 12366, 12367, 12368, 12369, 12370, 12371, 12372, 12373, 12374, 12375, 12376, 12377, 12378, 12379, 12380, 12381, 12382, 12383, 12384, 12385, 12386, 12387, 12388, 12389, 12390, 12391, 12392, 12393, 12394, 12395, 12396, 12397, 12398, 12399, 12400, 12401, 12402, 12403, 12404, 12405, 12406, 12407, 12408, 12409, 12410, 12411, 12412, 12413, 12414, 12415, 12416, 12417, 12418, 12419, 12420, 12421, 12422, 12423, 12424, 12425, 12426, 12427, 12428, 12429, 12430, 12431, 12432, 12433, 12434, 12435, 12436, 12437, 12438, 12439, 12440, 12441, 12442, 12443, 12444, 12445, 12446, 12447, 12448, 12449, 12450, 12451, 12452, 12453, 12454, 12455, 12456, 12457, 12458, 12459, 12460, 12461, 12462, 12463, 12464, 12465, 12466, 12467, 12468, 12469, 12470, 12471, 12472, 12473, 12474, 12475, 12476, 12477, 12478, 12479, 12480, 12481, 12482, 12483, 12484, 12485, 12486, 12487, 12488, 12489, 12490, 12491, 12492, 12493, 12494, 12495, 12496, 12497, 12498, 12499, 12500, 12501, 12502, 12503, 12504, 12505, 12506, 12507, 12508, 12509, 12510, 12511, 12512, 12513, 12514, 12515, 12516, 12517, 12518, 12519, 12520, 12521, 12522, 12523, 12524, 12525, 12526, 12527, 12528, 12529, 12530, 12531, 12532, 12533, 12534, 12535, 12536, 12537, 12538, 12539, 12540, 12541, 12542, 12543, 12544, 12545, 12546, 12547, 12548, 12549, 12550, 12551, 12552, 12553, 12554, 12555, 12556, 12557, 12558, 12559, 12560, 12561, 12562, 12563, 12564, 12565, 12566, 12567, 12568, 12569, 12570, 12571, 12572, 12573, 12574, 12575, 12576, 12577, 12578, 12579, 12580, 12581, 12582, 12583, 12584, 12585, 12586, 12587, 12588, 12589, 12590, 12591, 12592, 12593, 12594, 12595, 12596, 12597, 12598, 12599, 12600, 12601, 12602, 12603, 12604, 12605, 12606, 12607, 12608, 12609, 12610, 12611, 12612, 12613, 12614, 12615, 12616, 12617, 12618, 12619, 12620, 12621, 12622, 12623, 12624, 12625, 12626, 12627, 12628, 12629, 12630, 12631, 12632, 12633, 12634, 12635, 12636, 12637, 12638, 12639, 12640, 12641, 12642, 12643, 12644, 12645, 12646, 12647, 12648, 12649, 12650, 12651, 12652, 12653, 12654, 12655, 12656, 12657, 12658, 12659, 12660, 12661, 12662, 12663, 12664, 12665, 12666, 12667, 12668, 12669, 12670, 12671, 12672, 12673, 12674, 12675, 12676, 12677, 12678, 12679, 12680, 12681, 12682, 12683, 12684, 12685, 12686, 12687, 12688, 12689, 12690, 12691, 12692, 12693, 12694, 12695, 12696, 12697, 12698, 12699, 12700, 12701, 12702, 12703, 12704, 12705, 12706, 12707, 12708, 12709, 12710, 12711, 12712, 12713, 12714, 12715, 12716, 12717, 12718, 12719, 12720, 12721, 12722, 12723, 12724, 12725, 12726, 12727, 12728, 12729, 12730, 12731, 12732, 12733, 12734, 12735, 12736, 12737, 12738, 12739, 12740, 12741, 12742, 12743, 12744, 12745, 12746, 12747, 12748, 12749, 12750, 12751, 12752, 12753, 12754, 12755, 12756, 12757, 12758, 12759, 12760, 12761, 12762, 12763, 12764, 12765, 12766, 12767, 12768, 12769, 12770, 12771, 12772, 12773, 12774, 12775, 12776, 12777, 12778, 12779, 12780, 12781, 12782, 12783, 12784, 12785, 12786, 12787, 12788, 12789, 12790, 12791, 12792, 12793, 12794, 12795, 12796, 12797, 12798, 12799, 12800, 12801, 12802, 12803, 12804, 12805, 12806, 12807, 12808, 12809, 12810, 12811, 12812, 12813, 12814, 12815, 12816, 12817, 12818, 12819, 12820, 12821, 12822, 12823, 12824, 12825, 12826, 12827, 12828, 12829, 12830, 12831, 12832, 12833, 12834, 12835, 12836, 12837, 12838, 12839, 12840, 12841, 12842, 12843, 12844, 12845, 12846, 12847, 12848, 12849, 12850, 12851, 12852, 12853, 12854, 12855, 12856, 12857, 12858, 12859, 12860, 12861, 12862, 12863, 12864, 12865, 12866, 12867, 12868, 12869, 12870, 12871, 12872, 12873, 12874, 12875, 12876, 12877, 12878, 12879, 12880, 12881, 12882, 12883, 12884, 12885, 12886, 12887, 12888, 12889, 12890, 12891, 12892, 12893, 12894, 12895, 12896, 12897, 12898, 12899, 12900, 12901, 12902, 12903, 12904, 12905, 12906, 12907, 12908, 12909, 12910, 12911, 12912, 12913, 12914, 12915, 12916, 12917, 12918, 12919, 12920, 12921, 12922, 12923, 12924, 12925, 12926, 12927, 12928, 12929, 12930, 12931, 12932, 12933, 12934, 12935, 12936, 12937, 12938, 12939, 12940, 12941, 12942, 12943, 12944, 12945, 12946, 12947, 12948, 12949, 12950, 12951, 12952, 12953, 12954, 12955, 12956, 12957, 12958, 12959, 12960, 12961, 12962, 12963, 12964, 12965, 12966, 12967, 12968, 12969, 12970, 12971, 12972, 12973, 12974, 12975, 12976, 12977, 12978, 12979, 12980, 12981, 12982, 12983, 12984, 12985, 12986, 12987, 12988, 12989, 12990, 12991, 12992, 12993, 12994, 12995, 12996, 12997, 12998, 12999, 13000, 13001, 13002, 13003, 13004, 13005, 13006, 13007, 13008, 13009, 13010, 13011, 13012, 13013, 13014, 13015, 13016, 13017, 13018, 13019, 13020, 13021, 13022, 13023, 13024, 13025, 13026, 13027, 13028, 13029, 13030, 13031, 13032, 13033, 13034, 13035, 13036, 13037, 13038, 13039, 13040, 13041, 13042, 13043, 13044, 13045, 13046, 13047, 13048, 13049, 13050, 13051, 13052, 13053, 13054, 13055, 13056, 13057, 13058, 13059, 13060, 13061, 13062, 13063, 13064, 13065, 13066, 13067, 13068, 13069, 13070, 13071, 13072, 13073, 13074, 13075, 13076, 13077, 13078, 13079, 13080, 13081, 13082, 13083, 13084, 13085, 13086, 13087, 13088, 13089, 13090, 13091, 13092, 13093, 13094, 13095, 13096, 13097, 13098, 13099, 13100, 13101, 13102, 13103, 13104, 13105, 13106, 13107, 13108, 13109, 13110, 13111, 13112, 13113, 13114, 13115, 13116, 13117, 13118, 13119, 13120, 13121, 13122, 13123, 13124, 13125, 13126, 13127, 13128, 13129, 13130, 13131, 13132, 13133, 13134, 13135, 13136, 13137, 13138, 13139, 13140, 13141, 13142, 13143, 13144, 13145, 13146, 13147, 13148, 13149, 13150, 13151, 13152, 13153, 13154, 13155, 13156, 13157, 13158, 13159, 13160, 13161, 13162, 13163, 13164, 13165, 13166, 13167, 13168, 13169, 13170, 13171, 13172, 13173, 13174, 13175, 13176, 13177, 13178, 13179, 13180, 13181, 13182, 13183, 13184, 13185, 13186, 13187, 13188, 13189, 13190, 13191, 13192, 13193, 13194, 13195, 13196, 13197, 13198, 13199, 13200, 13201, 13202, 13203, 13204, 13205, 13206, 13207, 13208, 13209, 13210, 13211, 13212, 13213, 13214, 13215, 13216, 13217, 13218, 13219, 13220, 13221, 13222, 13223, 13224, 13225, 13226, 13227, 13228, 13229, 13230, 13231, 13232, 13233, 13234, 13235, 13236, 13237, 13238, 13239, 13240, 13241, 13242, 13243, 13244, 13245, 13246, 13247, 13248, 13249, 13250, 13251, 13252, 13253, 13254, 13255, 13256, 13257, 13258, 13259, 13260, 13261, 13262, 13263, 13264, 13265, 13266, 13267, 13268, 13269, 13270, 13271, 13272, 13273, 13274, 13275, 13276, 13277, 13278, 13279, 13280, 13281, 13282, 13283, 13284, 13285, 13286, 13287, 13288, 13289, 13290, 13291, 13292, 13293, 13294, 13295, 13296, 13297, 13298, 13299, 13300, 13301, 13302, 13303, 13304, 13305, 13306, 13307, 13308, 13309, 13310, 13311, 13312, 13313, 13314, 13315, 13316, 13317, 13318, 13319, 13320, 13321, 13322, 13323, 13324, 13325, 13326, 13327, 13328, 13329, 13330, 13331, 13332, 13333, 13334, 13335, 13336, 13337, 13338, 13339, 13340, 13341, 13342, 13343, 13344, 13345, 13346, 13347, 13348, 13349, 13350, 13351, 13352, 13353, 13354, 13355, 13356, 13357, 13358, 13359, 13360, 13361, 13362, 13363, 13364, 13365, 13366, 13367, 13368, 13369, 13370, 13371, 13372, 13373, 13374, 13375, 13376, 13377, 13378, 13379, 13380, 13381, 13382, 13383, 13384, 13385, 13386, 13387, 13388, 13389, 13390, 13391, 13392, 13393, 13394, 13395, 13396, 13397, 13398, 13399, 13400, 13401, 13402, 13403, 13404, 13405, 13406, 13407, 13408, 13409, 13410, 13411, 13412, 13413, 13414, 13415, 13416, 13417, 13418, 13419, 13420, 13421, 13422, 13423, 13424, 13425, 13426, 13427, 13428, 13429, 13430, 13431, 13432, 13433, 13434, 13435, 13436, 13437, 13438, 13439, 13440, 13441, 13442, 13443, 13444, 13445, 13446, 13447, 13448, 13449, 13450, 13451, 13452, 13453, 13454, 13455, 13456, 13457, 13458, 13459, 13460, 13461, 13462, 13463, 13464, 13465, 13466, 13467, 13468, 13469, 13470, 13471, 13472, 13473, 13474, 13475, 13476, 13477, 13478, 13479, 13480, 13481, 13482, 13483, 13484, 13485, 13486, 13487, 13488, 13489, 13490, 13491, 13492, 13493, 13494, 13495, 13496, 13497, 13498, 13499, 13500, 13501, 13502, 13503, 13504, 13505, 13506, 13507, 13508, 13509, 13510, 13511, 13512, 13513, 13514, 13515, 13516, 13517, 13518, 13519, 13520, 13521, 13522, 13523, 13524, 13525, 13526, 13527, 13528, 13529, 13530, 13531, 13532, 13533, 13534, 13535, 13536, 13537, 13538, 13539, 13540, 13541, 13542, 13543, 13544, 13545, 13546, 13547, 13548, 13549, 13550, 13551, 13552, 13553, 13554, 13555, 13556, 13557, 13558, 13559, 13560, 13561, 13562, 13563, 13564, 13565, 13566, 13567, 13568, 13569, 13570, 13571, 13572, 13573, 13574, 13575, 13576, 13577, 13578, 13579, 13580, 13581, 13582, 13583, 13584, 13585, 13586, 13587, 13588, 13589, 13590, 13591, 13592, 13593, 13594, 13595, 13596, 13597, 13598, 13599, 13600, 13601, 13602, 13603, 13604, 13605, 13606, 13607, 13608, 13609, 13610, 13611, 13612, 13613, 13614, 13615, 13616, 13617, 13618, 13619, 13620, 13621, 13622, 13623, 13624, 13625, 13626, 13627, 13628, 13629, 13630, 13631, 13632, 13633, 13634, 13635, 13636, 13637, 13638, 13639, 13640, 13641, 13642, 13643, 13644, 13645, 13646, 13647, 13648, 13649, 13650, 13651, 13652, 13653, 13654, 13655, 13656, 13657, 13658, 13659, 13660, 13661, 13662, 13663, 13664, 13665, 13666, 13667, 13668, 13669, 13670, 13671, 13672, 13673, 13674, 13675, 13676, 13677, 13678, 13679, 13680, 13681, 13682, 13683, 13684, 13685, 13686, 13687, 13688, 13689, 13690, 13691, 13692, 13693, 13694, 13695, 13696, 13697, 13698, 13699, 13700, 13701, 13702, 13703, 13704, 13705, 13706, 13707, 13708, 13709, 13710, 13711, 13712, 13713, 13714, 13715, 13716, 13717, 13718, 13719, 13720, 13721, 13722, 13723, 13724, 13725, 13726, 13727, 13728, 13729, 13730, 13731, 13732, 13733, 13734, 13735, 13736, 13737, 13738, 13739, 13740, 13741, 13742, 13743, 13744, 13745, 13746, 13747, 13748, 13749, 13750, 13751, 13752, 13753, 13754, 13755, 13756, 13757, 13758, 13759, 13760, 13761, 13762, 13763, 13764, 13765, 13766, 13767, 13768, 13769, 13770, 13771, 13772, 13773, 13774, 13775, 13776, 13777, 13778, 13779, 13780, 13781, 13782, 13783, 13784, 13785, 13786, 13787, 13788, 13789, 13790, 13791, 13792, 13793, 13794, 13795, 13796, 13797, 13798, 13799, 13800, 13801, 13802, 13803, 13804, 13805, 13806, 13807, 13808, 13809, 13810, 13811, 13812, 13813, 13814, 13815, 13816, 13817, 13818, 13819, 13820, 13821, 13822, 13823, 13824, 13825, 13826, 13827, 13828, 13829, 13830, 13831, 13832, 13833, 13834, 13835, 13836, 13837, 13838, 13839, 13840, 13841, 13842, 13843, 13844, 13845, 13846, 13847, 13848, 13849, 13850, 13851, 13852, 13853, 13854, 13855, 13856, 13857, 13858, 13859, 13860, 13861, 13862, 13863, 13864, 13865, 13866, 13867, 13868, 13869, 13870, 13871, 13872, 13873, 13874, 13875, 13876, 13877, 13878, 13879, 13880, 13881, 13882, 13883, 13884, 13885, 13886, 13887, 13888, 13889, 13890, 13891, 13892, 13893, 13894, 13895, 13896, 13897, 13898, 13899, 13900, 13901, 13902, 13903, 13904, 13905, 13906, 13907, 13908, 13909, 13910, 13911, 13912, 13913, 13914, 13915, 13916, 13917, 13918, 13919, 13920, 13921, 13922, 13923, 13924, 13925, 13926, 13927, 13928, 13929, 13930, 13931, 13932, 13933, 13934, 13935, 13936, 13937, 13938, 13939, 13940, 13941, 13942, 13943, 13944, 13945, 13946, 13947, 13948, 13949, 13950, 13951, 13952, 13953, 13954, 13955, 13956, 13957, 13958, 13959, 13960, 13961, 13962, 13963, 13964, 13965, 13966, 13967, 13968, 13969, 13970, 13971, 13972, 13973, 13974, 13975, 13976, 13977, 13978, 13979, 13980, 13981, 13982, 13983, 13984, 13985, 13986, 13987, 13988, 13989, 13990, 13991, 13992, 13993, 13994, 13995, 13996, 13997, 13998, 13999, 14000, 14001, 14002, 14003, 14004, 14005, 14006, 14007, 14008, 14009, 14010, 14011, 14012, 14013, 14014, 14015, 14016, 14017, 14018, 14019, 14020, 14021, 14022, 14023, 14024, 14025, 14026, 14027, 14028, 14029, 14030, 14031, 14032, 14033, 14034, 14035, 14036, 14037, 14038, 14039, 14040, 14041, 14042, 14043, 14044, 14045, 14046, 14047, 14048, 14049, 14050, 14051, 14052, 14053, 14054, 14055, 14056, 14057, 14058, 14059, 14060, 14061, 14062, 14063, 14064, 14065, 14066, 14067, 14068, 14069, 14070, 14071, 14072, 14073, 14074, 14075, 14076, 14077, 14078, 14079, 14080, 14081, 14082, 14083, 14084, 14085, 14086, 14087, 14088, 14089, 14090, 14091, 14092, 14093, 14094, 14095, 14096, 14097, 14098, 14099, 14100, 14101, 14102, 14103, 14104, 14105, 14106, 14107, 14108, 14109, 14110, 14111, 14112, 14113, 14114, 14115, 14116, 14117, 14118, 14119, 14120, 14121, 14122, 14123, 14124, 14125, 14126, 14127, 14128, 14129, 14130, 14131, 14132, 14133, 14134, 14135, 14136, 14137, 14138, 14139, 14140, 14141, 14142, 14143, 14144, 14145, 14146, 14147, 14148, 14149, 14150, 14151, 14152, 14153, 14154, 14155, 14156, 14157, 14158, 14159, 14160, 14161, 14162, 14163, 14164, 14165, 14166, 14167, 14168, 14169, 14170, 14171, 14172, 14173, 14174, 14175, 14176, 14177, 14178, 14179, 14180, 14181, 14182, 14183, 14184, 14185, 14186, 14187, 14188, 14189, 14190, 14191, 14192, 14193, 14194, 14195, 14196, 14197, 14198, 14199, 14200, 14201, 14202, 14203, 14204, 14205, 14206, 14207, 14208, 14209, 14210, 14211, 14212, 14213, 14214, 14215, 14216, 14217, 14218, 14219, 14220, 14221, 14222, 14223, 14224, 14225, 14226, 14227, 14228, 14229, 14230, 14231, 14232, 14233, 14234, 14235, 14236, 14237, 14238, 14239, 14240, 14241, 14242, 14243, 14244, 14245, 14246, 14247, 14248, 14249, 14250, 14251, 14252, 14253, 14254, 14255, 14256, 14257, 14258, 14259, 14260, 14261, 14262, 14263, 14264, 14265, 14266, 14267, 14268, 14269, 14270, 14271, 14272, 14273, 14274, 14275, 14276, 14277, 14278, 14279, 14280, 14281, 14282, 14283, 14284, 14285, 14286, 14287, 14288, 14289, 14290, 14291, 14292, 14293, 14294, 14295, 14296, 14297, 14298, 14299, 14300, 14301, 14302, 14303, 14304, 14305, 14306, 14307, 14308, 14309, 14310, 14311, 14312, 14313, 14314, 14315, 14316, 14317, 14318, 14319, 14320, 14321, 14322, 14323, 14324, 14325, 14326, 14327, 14328, 14329, 14330, 14331, 14332, 14333, 14334, 14335, 14336, 14337, 14338, 14339, 14340, 14341, 14342, 14343, 14344, 14345, 14346, 14347, 14348, 14349, 14350, 14351, 14352, 14353, 14354, 14355, 14356, 14357, 14358, 14359, 14360, 14361, 14362, 14363, 14364, 14365, 14366, 14367, 14368, 14369, 14370, 14371, 14372, 14373, 14374, 14375, 14376, 14377, 14378, 14379, 14380, 14381, 14382, 14383, 14384, 14385, 14386, 14387, 14388, 14389, 14390, 14391, 14392, 14393, 14394, 14395, 14396, 14397, 14398, 14399, 14400, 14401, 14402, 14403, 14404, 14405, 14406, 14407, 14408, 14409, 14410, 14411, 14412, 14413, 14414, 14415, 14416, 14417, 14418, 14419, 14420, 14421, 14422, 14423, 14424, 14425, 14426, 14427, 14428, 14429, 14430, 14431, 14432, 14433, 14434, 14435, 14436, 14437, 14438, 14439, 14440, 14441, 14442, 14443, 14444, 14445, 14446, 14447, 14448, 14449, 14450, 14451, 14452, 14453, 14454, 14455, 14456, 14457, 14458, 14459, 14460, 14461, 14462, 14463, 14464, 14465, 14466, 14467, 14468, 14469, 14470, 14471, 14472, 14473, 14474, 14475, 14476, 14477, 14478, 14479, 14480, 14481, 14482, 14483, 14484, 14485, 14486, 14487, 14488, 14489, 14490, 14491, 14492, 14493, 14494, 14495, 14496, 14497, 14498, 14499, 14500, 14501, 14502, 14503, 14504, 14505, 14506, 14507, 14508, 14509, 14510, 14511, 14512, 14513, 14514, 14515, 14516, 14517, 14518, 14519, 14520, 14521, 14522, 14523, 14524, 14525, 14526, 14527, 14528, 14529, 14530, 14531, 14532, 14533, 14534, 14535, 14536, 14537, 14538, 14539, 14540, 14541, 14542, 14543, 14544, 14545, 14546, 14547, 14548, 14549, 14550, 14551, 14552, 14553, 14554, 14555, 14556, 14557, 14558, 14559, 14560, 14561, 14562, 14563, 14564, 14565, 14566, 14567, 14568, 14569, 14570, 14571, 14572, 14573, 14574, 14575, 14576, 14577, 14578, 14579, 14580, 14581, 14582, 14583, 14584, 14585, 14586, 14587, 14588, 14589, 14590, 14591, 14592, 14593, 14594, 14595, 14596, 14597, 14598, 14599, 14600, 14601, 14602, 14603, 14604, 14605, 14606, 14607, 14608, 14609, 14610, 14611, 14612, 14613, 14614, 14615, 14616, 14617, 14618, 14619, 14620, 14621, 14622, 14623, 14624, 14625, 14626, 14627, 14628, 14629, 14630, 14631, 14632, 14633, 14634, 14635, 14636, 14637, 14638, 14639, 14640, 14641, 14642, 14643, 14644, 14645, 14646, 14647, 14648, 14649, 14650, 14651, 14652, 14653, 14654, 14655, 14656, 14657, 14658, 14659, 14660, 14661, 14662, 14663, 14664, 14665, 14666, 14667, 14668, 14669, 14670, 14671, 14672, 14673, 14674, 14675, 14676, 14677, 14678, 14679, 14680, 14681, 14682, 14683, 14684, 14685, 14686, 14687, 14688, 14689, 14690, 14691, 14692, 14693, 14694, 14695, 14696, 14697, 14698, 14699, 14700, 14701, 14702, 14703, 14704, 14705, 14706, 14707, 14708, 14709, 14710, 14711, 14712, 14713, 14714, 14715, 14716, 14717, 14718, 14719, 14720, 14721, 14722, 14723, 14724, 14725, 14726, 14727, 14728, 14729, 14730, 14731, 14732, 14733, 14734, 14735, 14736, 14737, 14738, 14739, 14740, 14741, 14742, 14743, 14744, 14745, 14746, 14747, 14748, 14749, 14750, 14751, 14752, 14753, 14754, 14755, 14756, 14757, 14758, 14759, 14760, 14761, 14762, 14763, 14764, 14765, 14766, 14767, 14768, 14769, 14770, 14771, 14772, 14773, 14774, 14775, 14776, 14777, 14778, 14779, 14780, 14781, 14782, 14783, 14784, 14785, 14786, 14787, 14788, 14789, 14790, 14791, 14792, 14793, 14794, 14795, 14796, 14797, 14798, 14799, 14800, 14801, 14802, 14803, 14804, 14805, 14806, 14807, 14808, 14809, 14810, 14811, 14812, 14813, 14814, 14815, 14816, 14817, 14818, 14819, 14820, 14821, 14822, 14823, 14824, 14825, 14826, 14827, 14828, 14829, 14830, 14831, 14832, 14833, 14834, 14835, 14836, 14837, 14838, 14839, 14840, 14841, 14842, 14843, 14844, 14845, 14846, 14847, 14848, 14849, 14850, 14851, 14852, 14853, 14854, 14855, 14856, 14857, 14858, 14859, 14860, 14861, 14862, 14863, 14864, 14865, 14866, 14867, 14868, 14869, 14870, 14871, 14872, 14873, 14874, 14875, 14876, 14877, 14878, 14879, 14880, 14881, 14882, 14883, 14884, 14885, 14886, 14887, 14888, 14889, 14890, 14891, 14892, 14893, 14894, 14895, 14896, 14897, 14898, 14899, 14900, 14901, 14902, 14903, 14904, 14905, 14906, 14907, 14908, 14909, 14910, 14911, 14912, 14913, 14914, 14915, 14916, 14917, 14918, 14919, 14920, 14921, 14922, 14923, 14924, 14925, 14926, 14927, 14928, 14929, 14930, 14931, 14932, 14933, 14934, 14935, 14936, 14937, 14938, 14939, 14940, 14941, 14942, 14943, 14944, 14945, 14946, 14947, 14948, 14949, 14950, 14951, 14952, 14953, 14954, 14955, 14956, 14957, 14958, 14959, 14960, 14961, 14962, 14963, 14964, 14965, 14966, 14967, 14968, 14969, 14970, 14971, 14972, 14973, 14974, 14975, 14976, 14977, 14978, 14979, 14980, 14981, 14982, 14983, 14984, 14985, 14986, 14987, 14988, 14989, 14990, 14991, 14992, 14993, 14994, 14995, 14996, 14997, 14998, 14999, 15000, 15001, 15002, 15003, 15004, 15005, 15006, 15007, 15008, 15009, 15010, 15011, 15012, 15013, 15014, 15015, 15016, 15017, 15018, 15019, 15020, 15021, 15022, 15023, 15024, 15025, 15026, 15027, 15028, 15029, 15030, 15031, 15032, 15033, 15034, 15035, 15036, 15037, 15038, 15039, 15040, 15041, 15042, 15043, 15044, 15045, 15046, 15047, 15048, 15049, 15050, 15051, 15052, 15053, 15054, 15055, 15056, 15057, 15058, 15059, 15060, 15061, 15062, 15063, 15064, 15065, 15066, 15067, 15068, 15069, 15070, 15071, 15072, 15073, 15074, 15075, 15076, 15077, 15078, 15079, 15080, 15081, 15082, 15083, 15084, 15085, 15086, 15087, 15088, 15089, 15090, 15091, 15092, 15093, 15094, 15095, 15096, 15097, 15098, 15099, 15100, 15101, 15102, 15103, 15104, 15105, 15106, 15107, 15108, 15109, 15110, 15111, 15112, 15113, 15114, 15115, 15116, 15117, 15118, 15119, 15120, 15121, 15122, 15123, 15124, 15125, 15126, 15127, 15128, 15129, 15130, 15131, 15132, 15133, 15134, 15135, 15136, 15137, 15138, 15139, 15140, 15141, 15142, 15143, 15144, 15145, 15146, 15147, 15148, 15149, 15150, 15151, 15152, 15153, 15154, 15155, 15156, 15157, 15158, 15159, 15160, 15161, 15162, 15163, 15164, 15165, 15166, 15167, 15168, 15169, 15170, 15171, 15172, 15173, 15174, 15175, 15176, 15177, 15178, 15179, 15180, 15181, 15182, 15183, 15184, 15185, 15186, 15187, 15188, 15189, 15190, 15191, 15192, 15193, 15194, 15195, 15196, 15197, 15198, 15199, 15200, 15201, 15202, 15203, 15204, 15205, 15206, 15207, 15208, 15209, 15210, 15211, 15212, 15213, 15214, 15215, 15216, 15217, 15218, 15219, 15220, 15221, 15222, 15223, 15224, 15225, 15226, 15227, 15228, 15229, 15230, 15231, 15232, 15233, 15234, 15235, 15236, 15237, 15238, 15239, 15240, 15241, 15242, 15243, 15244, 15245, 15246, 15247, 15248, 15249, 15250, 15251, 15252, 15253, 15254, 15255, 15256, 15257, 15258, 15259, 15260, 15261, 15262, 15263, 15264, 15265, 15266, 15267, 15268, 15269, 15270, 15271, 15272, 15273, 15274, 15275, 15276, 15277, 15278, 15279, 15280, 15281, 15282, 15283, 15284, 15285, 15286, 15287, 15288, 15289, 15290, 15291, 15292, 15293, 15294, 15295, 15296, 15297, 15298, 15299, 15300, 15301, 15302, 15303, 15304, 15305, 15306, 15307, 15308, 15309, 15310, 15311, 15312, 15313, 15314, 15315, 15316, 15317, 15318, 15319, 15320, 15321, 15322, 15323, 15324, 15325, 15326, 15327, 15328, 15329, 15330, 15331, 15332, 15333, 15334, 15335, 15336, 15337, 15338, 15339, 15340, 15341, 15342, 15343, 15344, 15345, 15346, 15347, 15348, 15349, 15350, 15351, 15352, 15353, 15354, 15355, 15356, 15357, 15358, 15359, 15360, 15361, 15362, 15363, 15364, 15365, 15366, 15367, 15368, 15369, 15370, 15371, 15372, 15373, 15374, 15375, 15376, 15377, 15378, 15379, 15380, 15381, 15382, 15383, 15384, 15385, 15386, 15387, 15388, 15389, 15390, 15391, 15392, 15393, 15394, 15395, 15396, 15397, 15398, 15399, 15400, 15401, 15402, 15403, 15404, 15405, 15406, 15407, 15408, 15409, 15410, 15411, 15412, 15413, 15414, 15415, 15416, 15417, 15418, 15419, 15420, 15421, 15422, 15423, 15424, 15425, 15426, 15427, 15428, 15429, 15430, 15431, 15432, 15433, 15434, 15435, 15436, 15437, 15438, 15439, 15440, 15441, 15442, 15443, 15444, 15445, 15446, 15447, 15448, 15449, 15450, 15451, 15452, 15453, 15454, 15455, 15456, 15457, 15458, 15459, 15460, 15461, 15462, 15463, 15464, 15465, 15466, 15467, 15468, 15469, 15470, 15471, 15472, 15473, 15474, 15475, 15476, 15477, 15478, 15479, 15480, 15481, 15482, 15483, 15484, 15485, 15486, 15487, 15488, 15489, 15490, 15491, 15492, 15493, 15494, 15495, 15496, 15497, 15498, 15499, 15500, 15501, 15502, 15503, 15504, 15505, 15506, 15507, 15508, 15509, 15510, 15511, 15512, 15513, 15514, 15515, 15516, 15517, 15518, 15519, 15520, 15521, 15522, 15523, 15524, 15525, 15526, 15527, 15528, 15529, 15530, 15531, 15532, 15533, 15534, 15535, 15536, 15537, 15538, 15539, 15540, 15541, 15542, 15543, 15544, 15545, 15546, 15547, 15548, 15549, 15550, 15551, 15552, 15553, 15554, 15555, 15556, 15557, 15558, 15559, 15560, 15561, 15562, 15563, 15564, 15565, 15566, 15567, 15568, 15569, 15570, 15571, 15572, 15573, 15574, 15575, 15576, 15577, 15578, 15579, 15580, 15581, 15582, 15583, 15584, 15585, 15586, 15587, 15588, 15589, 15590, 15591, 15592, 15593, 15594, 15595, 15596, 15597, 15598, 15599, 15600, 15601, 15602, 15603, 15604, 15605, 15606, 15607, 15608, 15609, 15610, 15611, 15612, 15613, 15614, 15615, 15616, 15617, 15618, 15619, 15620, 15621, 15622, 15623, 15624, 15625, 15626, 15627, 15628, 15629, 15630, 15631, 15632, 15633, 15634, 15635, 15636, 15637, 15638, 15639, 15640, 15641, 15642, 15643, 15644, 15645, 15646, 15647, 15648, 15649, 15650, 15651, 15652, 15653, 15654, 15655, 15656, 15657, 15658, 15659, 15660, 15661, 15662, 15663, 15664, 15665, 15666, 15667, 15668, 15669, 15670, 15671, 15672, 15673, 15674, 15675, 15676, 15677, 15678, 15679, 15680, 15681, 15682, 15683, 15684, 15685, 15686, 15687, 15688, 15689, 15690, 15691, 15692, 15693, 15694, 15695, 15696, 15697, 15698, 15699, 15700, 15701, 15702, 15703, 15704, 15705, 15706, 15707, 15708, 15709, 15710, 15711, 15712, 15713, 15714, 15715, 15716, 15717, 15718, 15719, 15720, 15721, 15722, 15723, 15724, 15725, 15726, 15727, 15728, 15729, 15730, 15731, 15732, 15733, 15734, 15735, 15736, 15737, 15738, 15739, 15740, 15741, 15742, 15743, 15744, 15745, 15746, 15747, 15748, 15749, 15750, 15751, 15752, 15753, 15754, 15755, 15756, 15757, 15758, 15759, 15760, 15761, 15762, 15763, 15764, 15765, 15766, 15767, 15768, 15769, 15770, 15771, 15772, 15773, 15774, 15775, 15776, 15777, 15778, 15779, 15780, 15781, 15782, 15783, 15784, 15785, 15786, 15787, 15788, 15789, 15790, 15791, 15792, 15793, 15794, 15795, 15796, 15797, 15798, 15799, 15800, 15801, 15802, 15803, 15804, 15805, 15806, 15807, 15808, 15809, 15810, 15811, 15812, 15813, 15814, 15815, 15816, 15817, 15818, 15819, 15820, 15821, 15822, 15823, 15824, 15825, 15826, 15827, 15828, 15829, 15830, 15831, 15832, 15833, 15834, 15835, 15836, 15837, 15838, 15839, 15840, 15841, 15842, 15843, 15844, 15845, 15846, 15847, 15848, 15849, 15850, 15851, 15852, 15853, 15854, 15855, 15856, 15857, 15858, 15859, 15860, 15861, 15862, 15863, 15864, 15865, 15866, 15867, 15868, 15869, 15870, 15871, 15872, 15873, 15874, 15875, 15876, 15877, 15878, 15879, 15880, 15881, 15882, 15883, 15884, 15885, 15886, 15887, 15888, 15889, 15890, 15891, 15892, 15893, 15894, 15895, 15896, 15897, 15898, 15899, 15900, 15901, 15902, 15903, 15904, 15905, 15906, 15907, 15908, 15909, 15910, 15911, 15912, 15913, 15914, 15915, 15916, 15917, 15918, 15919, 15920, 15921, 15922, 15923, 15924, 15925, 15926, 15927, 15928, 15929, 15930, 15931, 15932, 15933, 15934, 15935, 15936, 15937, 15938, 15939, 15940, 15941, 15942, 15943, 15944, 15945, 15946, 15947, 15948, 15949, 15950, 15951, 15952, 15953, 15954, 15955, 15956, 15957, 15958, 15959, 15960, 15961, 15962, 15963, 15964, 15965, 15966, 15967, 15968, 15969, 15970, 15971, 15972, 15973, 15974, 15975, 15976, 15977, 15978, 15979, 15980, 15981, 15982, 15983, 15984, 15985, 15986, 15987, 15988, 15989, 15990, 15991, 15992, 15993, 15994, 15995, 15996, 15997, 15998, 15999, 16000, 16001, 16002, 16003, 16004, 16005, 16006, 16007, 16008, 16009, 16010, 16011, 16012, 16013, 16014, 16015, 16016, 16017, 16018, 16019, 16020, 16021, 16022, 16023, 16024, 16025, 16026, 16027, 16028, 16029, 16030, 16031, 16032, 16033, 16034, 16035, 16036, 16037, 16038, 16039, 16040, 16041, 16042, 16043, 16044, 16045, 16046, 16047, 16048, 16049, 16050, 16051, 16052, 16053, 16054, 16055, 16056, 16057, 16058, 16059, 16060, 16061, 16062, 16063, 16064, 16065, 16066, 16067, 16068, 16069, 16070, 16071, 16072, 16073, 16074, 16075, 16076, 16077, 16078, 16079, 16080, 16081, 16082, 16083, 16084, 16085, 16086, 16087, 16088, 16089, 16090, 16091, 16092, 16093, 16094, 16095, 16096, 16097, 16098, 16099, 16100, 16101, 16102, 16103, 16104, 16105, 16106, 16107, 16108, 16109, 16110, 16111, 16112, 16113, 16114, 16115, 16116, 16117, 16118, 16119, 16120, 16121, 16122, 16123, 16124, 16125, 16126, 16127, 16128, 16129, 16130, 16131, 16132, 16133, 16134, 16135, 16136, 16137, 16138, 16139, 16140, 16141, 16142, 16143, 16144, 16145, 16146, 16147, 16148, 16149, 16150, 16151, 16152, 16153, 16154, 16155, 16156, 16157, 16158, 16159, 16160, 16161, 16162, 16163, 16164, 16165, 16166, 16167, 16168, 16169, 16170, 16171, 16172, 16173, 16174, 16175, 16176, 16177, 16178, 16179, 16180, 16181, 16182, 16183, 16184, 16185, 16186, 16187, 16188, 16189, 16190, 16191, 16192, 16193, 16194, 16195, 16196, 16197, 16198, 16199, 16200, 16201, 16202, 16203, 16204, 16205, 16206, 16207, 16208, 16209, 16210, 16211, 16212, 16213, 16214, 16215, 16216, 16217, 16218, 16219, 16220, 16221, 16222, 16223, 16224, 16225, 16226, 16227, 16228, 16229, 16230, 16231, 16232, 16233, 16234, 16235, 16236, 16237, 16238, 16239, 16240, 16241, 16242, 16243, 16244, 16245, 16246, 16247, 16248, 16249, 16250, 16251, 16252, 16253, 16254, 16255, 16256, 16257, 16258, 16259, 16260, 16261, 16262, 16263, 16264, 16265, 16266, 16267, 16268, 16269, 16270, 16271, 16272, 16273, 16274, 16275, 16276, 16277, 16278, 16279, 16280, 16281, 16282, 16283, 16284, 16285, 16286, 16287, 16288, 16289, 16290, 16291, 16292, 16293, 16294, 16295, 16296, 16297, 16298, 16299, 16300, 16301, 16302, 16303, 16304, 16305, 16306, 16307, 16308, 16309, 16310, 16311, 16312, 16313, 16314, 16315, 16316, 16317, 16318, 16319, 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327, 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335, 16336, 16337, 16338, 16339, 16340, 16341, 16342, 16343, 16344, 16345, 16346, 16347, 16348, 16349, 16350, 16351, 16352, 16353, 16354, 16355, 16356, 16357, 16358, 16359, 16360, 16361, 16362, 16363, 16364, 16365, 16366, 16367, 16368, 16369, 16370, 16371, 16372, 16373, 16374, 16375, 16376, 16377, 16378, 16379, 16380, 16381, 16382, 16383, 16384, 16385, 16386, 16387, 16388, 16389, 16390, 16391, 16392, 16393, 16394, 16395, 16396, 16397, 16398, 16399, 16400, 16401, 16402, 16403, 16404, 16405, 16406, 16407, 16408, 16409, 16410, 16411, 16412, 16413, 16414, 16415, 16416, 16417, 16418, 16419, 16420, 16421, 16422, 16423, 16424, 16425, 16426, 16427, 16428, 16429, 16430, 16431, 16432, 16433, 16434, 16435, 16436, 16437, 16438, 16439, 16440, 16441, 16442, 16443, 16444, 16445, 16446, 16447, 16448, 16449, 16450, 16451, 16452, 16453, 16454, 16455, 16456, 16457, 16458, 16459, 16460, 16461, 16462, 16463, 16464, 16465, 16466, 16467, 16468, 16469, 16470, 16471, 16472, 16473, 16474, 16475, 16476, 16477, 16478, 16479, 16480, 16481, 16482, 16483, 16484, 16485, 16486, 16487, 16488, 16489, 16490, 16491, 16492, 16493, 16494, 16495, 16496, 16497, 16498, 16499, 16500, 16501, 16502, 16503, 16504, 16505, 16506, 16507, 16508, 16509, 16510, 16511, 16512, 16513, 16514, 16515, 16516, 16517, 16518, 16519, 16520, 16521, 16522, 16523, 16524, 16525, 16526, 16527, 16528, 16529, 16530, 16531, 16532, 16533, 16534, 16535, 16536, 16537, 16538, 16539, 16540, 16541, 16542, 16543, 16544, 16545, 16546, 16547, 16548, 16549, 16550, 16551, 16552, 16553, 16554, 16555, 16556, 16557, 16558, 16559, 16560, 16561, 16562, 16563, 16564, 16565, 16566, 16567, 16568, 16569, 16570, 16571, 16572, 16573, 16574, 16575, 16576, 16577, 16578, 16579, 16580, 16581, 16582, 16583, 16584, 16585, 16586, 16587, 16588, 16589, 16590, 16591, 16592, 16593, 16594, 16595, 16596, 16597, 16598, 16599, 16600, 16601, 16602, 16603, 16604, 16605, 16606, 16607, 16608, 16609, 16610, 16611, 16612, 16613, 16614, 16615, 16616, 16617, 16618, 16619, 16620, 16621, 16622, 16623, 16624, 16625, 16626, 16627, 16628, 16629, 16630, 16631, 16632, 16633, 16634, 16635, 16636, 16637, 16638, 16639, 16640, 16641, 16642, 16643, 16644, 16645, 16646, 16647, 16648, 16649, 16650, 16651, 16652, 16653, 16654, 16655, 16656, 16657, 16658, 16659, 16660, 16661, 16662, 16663, 16664, 16665, 16666, 16667, 16668, 16669, 16670, 16671, 16672, 16673, 16674, 16675, 16676, 16677, 16678, 16679, 16680, 16681, 16682, 16683, 16684, 16685, 16686, 16687, 16688, 16689, 16690, 16691, 16692, 16693, 16694, 16695, 16696, 16697, 16698, 16699, 16700, 16701, 16702, 16703, 16704, 16705, 16706, 16707, 16708, 16709, 16710, 16711, 16712, 16713, 16714, 16715, 16716, 16717, 16718, 16719, 16720, 16721, 16722, 16723, 16724, 16725, 16726, 16727, 16728, 16729, 16730, 16731, 16732, 16733, 16734, 16735, 16736, 16737, 16738, 16739, 16740, 16741, 16742, 16743, 16744, 16745, 16746, 16747, 16748, 16749, 16750, 16751, 16752, 16753, 16754, 16755, 16756, 16757, 16758, 16759, 16760, 16761, 16762, 16763, 16764, 16765, 16766, 16767, 16768, 16769, 16770, 16771, 16772, 16773, 16774, 16775, 16776, 16777, 16778, 16779, 16780, 16781, 16782, 16783, 16784, 16785, 16786, 16787, 16788, 16789, 16790, 16791, 16792, 16793, 16794, 16795, 16796, 16797, 16798, 16799, 16800, 16801, 16802, 16803, 16804, 16805, 16806, 16807, 16808, 16809, 16810, 16811, 16812, 16813, 16814, 16815, 16816, 16817, 16818, 16819, 16820, 16821, 16822, 16823, 16824, 16825, 16826, 16827, 16828, 16829, 16830, 16831, 16832, 16833, 16834, 16835, 16836, 16837, 16838, 16839, 16840, 16841, 16842, 16843, 16844, 16845, 16846, 16847, 16848, 16849, 16850, 16851, 16852, 16853, 16854, 16855, 16856, 16857, 16858, 16859, 16860, 16861, 16862, 16863, 16864, 16865, 16866, 16867, 16868, 16869, 16870, 16871, 16872, 16873, 16874, 16875, 16876, 16877, 16878, 16879, 16880, 16881, 16882, 16883, 16884, 16885, 16886, 16887, 16888, 16889, 16890, 16891, 16892, 16893, 16894, 16895, 16896, 16897, 16898, 16899, 16900, 16901, 16902, 16903, 16904, 16905, 16906, 16907, 16908, 16909, 16910, 16911, 16912, 16913, 16914, 16915, 16916, 16917, 16918, 16919, 16920, 16921, 16922, 16923, 16924, 16925, 16926, 16927, 16928, 16929, 16930, 16931, 16932, 16933, 16934, 16935, 16936, 16937, 16938, 16939, 16940, 16941, 16942, 16943, 16944, 16945, 16946, 16947, 16948, 16949, 16950, 16951, 16952, 16953, 16954, 16955, 16956, 16957, 16958, 16959, 16960, 16961, 16962, 16963, 16964, 16965, 16966, 16967, 16968, 16969, 16970, 16971, 16972, 16973, 16974, 16975, 16976, 16977, 16978, 16979, 16980, 16981, 16982, 16983, 16984, 16985, 16986, 16987, 16988, 16989, 16990, 16991, 16992, 16993, 16994, 16995, 16996, 16997, 16998, 16999, 17000, 17001, 17002, 17003, 17004, 17005, 17006, 17007, 17008, 17009, 17010, 17011, 17012, 17013, 17014, 17015, 17016, 17017, 17018, 17019, 17020, 17021, 17022, 17023, 17024, 17025, 17026, 17027, 17028, 17029, 17030, 17031, 17032, 17033, 17034, 17035, 17036, 17037, 17038, 17039, 17040, 17041, 17042, 17043, 17044, 17045, 17046, 17047, 17048, 17049, 17050, 17051, 17052, 17053, 17054, 17055, 17056, 17057, 17058, 17059, 17060, 17061, 17062, 17063, 17064, 17065, 17066, 17067, 17068, 17069, 17070, 17071, 17072, 17073, 17074, 17075, 17076, 17077, 17078, 17079, 17080, 17081, 17082, 17083, 17084, 17085, 17086, 17087, 17088, 17089, 17090, 17091, 17092, 17093, 17094, 17095, 17096, 17097, 17098, 17099, 17100, 17101, 17102, 17103, 17104, 17105, 17106, 17107, 17108, 17109, 17110, 17111, 17112, 17113, 17114, 17115, 17116, 17117, 17118, 17119, 17120, 17121, 17122, 17123, 17124, 17125, 17126, 17127, 17128, 17129, 17130, 17131, 17132, 17133, 17134, 17135, 17136, 17137, 17138, 17139, 17140, 17141, 17142, 17143, 17144, 17145, 17146, 17147, 17148, 17149, 17150, 17151, 17152, 17153, 17154, 17155, 17156, 17157, 17158, 17159, 17160, 17161, 17162, 17163, 17164, 17165, 17166, 17167, 17168, 17169, 17170, 17171, 17172, 17173, 17174, 17175, 17176, 17177, 17178, 17179, 17180, 17181, 17182, 17183, 17184, 17185, 17186, 17187, 17188, 17189, 17190, 17191, 17192, 17193, 17194, 17195, 17196, 17197, 17198, 17199, 17200, 17201, 17202, 17203, 17204, 17205, 17206, 17207, 17208, 17209, 17210, 17211, 17212, 17213, 17214, 17215, 17216, 17217, 17218, 17219, 17220, 17221, 17222, 17223, 17224, 17225, 17226, 17227, 17228, 17229, 17230, 17231, 17232, 17233, 17234, 17235, 17236, 17237, 17238, 17239, 17240, 17241, 17242, 17243, 17244, 17245, 17246, 17247, 17248, 17249, 17250, 17251, 17252, 17253, 17254, 17255, 17256, 17257, 17258, 17259, 17260, 17261, 17262, 17263, 17264, 17265, 17266, 17267, 17268, 17269, 17270, 17271, 17272, 17273, 17274, 17275, 17276, 17277, 17278, 17279, 17280, 17281, 17282, 17283, 17284, 17285, 17286, 17287, 17288, 17289, 17290, 17291, 17292, 17293, 17294, 17295, 17296, 17297, 17298, 17299, 17300, 17301, 17302, 17303, 17304, 17305, 17306, 17307, 17308, 17309, 17310, 17311, 17312, 17313, 17314, 17315, 17316, 17317, 17318, 17319, 17320, 17321, 17322, 17323, 17324, 17325, 17326, 17327, 17328, 17329, 17330, 17331, 17332, 17333, 17334, 17335, 17336, 17337, 17338, 17339, 17340, 17341, 17342, 17343, 17344, 17345, 17346, 17347, 17348, 17349, 17350, 17351, 17352, 17353, 17354, 17355, 17356, 17357, 17358, 17359, 17360, 17361, 17362, 17363, 17364, 17365, 17366, 17367, 17368, 17369, 17370, 17371, 17372, 17373, 17374, 17375, 17376, 17377, 17378, 17379, 17380, 17381, 17382, 17383, 17384, 17385, 17386, 17387, 17388, 17389, 17390, 17391, 17392, 17393, 17394, 17395, 17396, 17397, 17398, 17399, 17400, 17401, 17402, 17403, 17404, 17405, 17406, 17407, 17408, 17409, 17410, 17411, 17412, 17413, 17414, 17415, 17416, 17417, 17418, 17419, 17420, 17421, 17422, 17423, 17424, 17425, 17426, 17427, 17428, 17429, 17430, 17431, 17432, 17433, 17434, 17435, 17436, 17437, 17438, 17439, 17440, 17441, 17442, 17443, 17444, 17445, 17446, 17447, 17448, 17449, 17450, 17451, 17452, 17453, 17454, 17455, 17456, 17457, 17458, 17459, 17460, 17461, 17462, 17463, 17464, 17465, 17466, 17467, 17468, 17469, 17470, 17471, 17472, 17473, 17474, 17475, 17476, 17477, 17478, 17479, 17480, 17481, 17482, 17483, 17484, 17485, 17486, 17487, 17488, 17489, 17490, 17491, 17492, 17493, 17494, 17495, 17496, 17497, 17498, 17499, 17500, 17501, 17502, 17503, 17504, 17505, 17506, 17507, 17508, 17509, 17510, 17511, 17512, 17513, 17514, 17515, 17516, 17517, 17518, 17519, 17520, 17521, 17522, 17523, 17524, 17525, 17526, 17527, 17528, 17529, 17530, 17531, 17532, 17533, 17534, 17535, 17536, 17537, 17538, 17539, 17540, 17541, 17542, 17543, 17544, 17545, 17546, 17547, 17548, 17549, 17550, 17551, 17552, 17553, 17554, 17555, 17556, 17557, 17558, 17559, 17560, 17561, 17562, 17563, 17564, 17565, 17566, 17567, 17568, 17569, 17570, 17571, 17572, 17573, 17574, 17575, 17576, 17577, 17578, 17579, 17580, 17581, 17582, 17583, 17584, 17585, 17586, 17587, 17588, 17589, 17590, 17591, 17592, 17593, 17594, 17595, 17596, 17597, 17598, 17599, 17600, 17601, 17602, 17603, 17604, 17605, 17606, 17607, 17608, 17609, 17610, 17611, 17612, 17613, 17614, 17615, 17616, 17617, 17618, 17619, 17620, 17621, 17622, 17623, 17624, 17625, 17626, 17627, 17628, 17629, 17630, 17631, 17632, 17633, 17634, 17635, 17636, 17637, 17638, 17639, 17640, 17641, 17642, 17643, 17644, 17645, 17646, 17647, 17648, 17649, 17650, 17651, 17652, 17653, 17654, 17655, 17656, 17657, 17658, 17659, 17660, 17661, 17662, 17663, 17664, 17665, 17666, 17667, 17668, 17669, 17670, 17671, 17672, 17673, 17674, 17675, 17676, 17677, 17678, 17679, 17680, 17681, 17682, 17683, 17684, 17685, 17686, 17687, 17688, 17689, 17690, 17691, 17692, 17693, 17694, 17695, 17696, 17697, 17698, 17699, 17700, 17701, 17702, 17703, 17704, 17705, 17706, 17707, 17708, 17709, 17710, 17711, 17712, 17713, 17714, 17715, 17716, 17717, 17718, 17719, 17720, 17721, 17722, 17723, 17724, 17725, 17726, 17727, 17728, 17729, 17730, 17731, 17732, 17733, 17734, 17735, 17736, 17737, 17738, 17739, 17740, 17741, 17742, 17743, 17744, 17745, 17746, 17747, 17748, 17749, 17750, 17751, 17752, 17753, 17754, 17755, 17756, 17757, 17758, 17759, 17760, 17761, 17762, 17763, 17764, 17765, 17766, 17767, 17768, 17769, 17770, 17771, 17772, 17773, 17774, 17775, 17776, 17777, 17778, 17779, 17780, 17781, 17782, 17783, 17784, 17785, 17786, 17787, 17788, 17789, 17790, 17791, 17792, 17793, 17794, 17795, 17796, 17797, 17798, 17799, 17800, 17801, 17802, 17803, 17804, 17805, 17806, 17807, 17808, 17809, 17810, 17811, 17812, 17813, 17814, 17815, 17816, 17817, 17818, 17819, 17820, 17821, 17822, 17823, 17824, 17825, 17826, 17827, 17828, 17829, 17830, 17831, 17832, 17833, 17834, 17835, 17836, 17837, 17838, 17839, 17840, 17841, 17842, 17843, 17844, 17845, 17846, 17847, 17848, 17849, 17850, 17851, 17852, 17853, 17854, 17855, 17856, 17857, 17858, 17859, 17860, 17861, 17862, 17863, 17864, 17865, 17866, 17867, 17868, 17869, 17870, 17871, 17872, 17873, 17874, 17875, 17876, 17877, 17878, 17879, 17880, 17881, 17882, 17883, 17884, 17885, 17886, 17887, 17888, 17889, 17890, 17891, 17892, 17893, 17894, 17895, 17896, 17897, 17898, 17899, 17900, 17901, 17902, 17903, 17904, 17905, 17906, 17907, 17908, 17909, 17910, 17911, 17912, 17913, 17914, 17915, 17916, 17917, 17918, 17919, 17920, 17921, 17922, 17923, 17924, 17925, 17926, 17927, 17928, 17929, 17930, 17931, 17932, 17933, 17934, 17935, 17936, 17937, 17938, 17939, 17940, 17941, 17942, 17943, 17944, 17945, 17946, 17947, 17948, 17949, 17950, 17951, 17952, 17953, 17954, 17955, 17956, 17957, 17958, 17959, 17960, 17961, 17962, 17963, 17964, 17965, 17966, 17967, 17968, 17969, 17970, 17971, 17972, 17973, 17974, 17975, 17976, 17977, 17978, 17979, 17980, 17981, 17982, 17983, 17984, 17985, 17986, 17987, 17988, 17989, 17990, 17991, 17992, 17993, 17994, 17995, 17996, 17997, 17998, 17999, 18000, 18001, 18002, 18003, 18004, 18005, 18006, 18007, 18008, 18009, 18010, 18011, 18012, 18013, 18014, 18015, 18016, 18017, 18018, 18019, 18020, 18021, 18022, 18023, 18024, 18025, 18026, 18027, 18028, 18029, 18030, 18031, 18032, 18033, 18034, 18035, 18036, 18037, 18038, 18039, 18040, 18041, 18042, 18043, 18044, 18045, 18046, 18047, 18048, 18049, 18050, 18051, 18052, 18053, 18054, 18055, 18056, 18057, 18058, 18059, 18060, 18061, 18062, 18063, 18064, 18065, 18066, 18067, 18068, 18069, 18070, 18071, 18072, 18073, 18074, 18075, 18076, 18077, 18078, 18079, 18080, 18081, 18082, 18083, 18084, 18085, 18086, 18087, 18088, 18089, 18090, 18091, 18092, 18093, 18094, 18095, 18096, 18097, 18098, 18099, 18100, 18101, 18102, 18103, 18104, 18105, 18106, 18107, 18108, 18109, 18110, 18111, 18112, 18113, 18114, 18115, 18116, 18117, 18118, 18119, 18120, 18121, 18122, 18123, 18124, 18125, 18126, 18127, 18128, 18129, 18130, 18131, 18132, 18133, 18134, 18135, 18136, 18137, 18138, 18139, 18140, 18141, 18142, 18143, 18144, 18145, 18146, 18147, 18148, 18149, 18150, 18151, 18152, 18153, 18154, 18155, 18156, 18157, 18158, 18159, 18160, 18161, 18162, 18163, 18164, 18165, 18166, 18167, 18168, 18169, 18170, 18171, 18172, 18173, 18174, 18175, 18176, 18177, 18178, 18179, 18180, 18181, 18182, 18183, 18184, 18185, 18186, 18187, 18188, 18189, 18190, 18191, 18192, 18193, 18194, 18195, 18196, 18197, 18198, 18199, 18200, 18201, 18202, 18203, 18204, 18205, 18206, 18207, 18208, 18209, 18210, 18211, 18212, 18213, 18214, 18215, 18216, 18217, 18218, 18219, 18220, 18221, 18222, 18223, 18224, 18225, 18226, 18227, 18228, 18229, 18230, 18231, 18232, 18233, 18234, 18235, 18236, 18237, 18238, 18239, 18240, 18241, 18242, 18243, 18244, 18245, 18246, 18247, 18248, 18249, 18250, 18251, 18252, 18253, 18254, 18255, 18256, 18257, 18258, 18259, 18260, 18261, 18262, 18263, 18264, 18265, 18266, 18267, 18268, 18269, 18270, 18271, 18272, 18273, 18274, 18275, 18276, 18277, 18278, 18279, 18280, 18281, 18282, 18283, 18284, 18285, 18286, 18287, 18288, 18289, 18290, 18291, 18292, 18293, 18294, 18295, 18296, 18297, 18298, 18299, 18300, 18301, 18302, 18303, 18304, 18305, 18306, 18307, 18308, 18309, 18310, 18311, 18312, 18313, 18314, 18315, 18316, 18317, 18318, 18319, 18320, 18321, 18322, 18323, 18324, 18325, 18326, 18327, 18328, 18329, 18330, 18331, 18332, 18333, 18334, 18335, 18336, 18337, 18338, 18339, 18340, 18341, 18342, 18343, 18344, 18345, 18346, 18347, 18348, 18349, 18350, 18351, 18352, 18353, 18354, 18355, 18356, 18357, 18358, 18359, 18360, 18361, 18362, 18363, 18364, 18365, 18366, 18367, 18368, 18369, 18370, 18371, 18372, 18373, 18374, 18375, 18376, 18377, 18378, 18379, 18380, 18381, 18382, 18383, 18384, 18385, 18386, 18387, 18388, 18389, 18390, 18391, 18392, 18393, 18394, 18395, 18396, 18397, 18398, 18399, 18400, 18401, 18402, 18403, 18404, 18405, 18406, 18407, 18408, 18409, 18410, 18411, 18412, 18413, 18414, 18415, 18416, 18417, 18418, 18419, 18420, 18421, 18422, 18423, 18424, 18425, 18426, 18427, 18428, 18429, 18430, 18431, 18432, 18433, 18434, 18435, 18436, 18437, 18438, 18439, 18440, 18441, 18442, 18443, 18444, 18445, 18446, 18447, 18448, 18449, 18450, 18451, 18452, 18453, 18454, 18455, 18456, 18457, 18458, 18459, 18460, 18461, 18462, 18463, 18464, 18465, 18466, 18467, 18468, 18469, 18470, 18471, 18472, 18473, 18474, 18475, 18476, 18477, 18478, 18479, 18480, 18481, 18482, 18483, 18484, 18485, 18486, 18487, 18488, 18489, 18490, 18491, 18492, 18493, 18494, 18495, 18496, 18497, 18498, 18499, 18500, 18501, 18502, 18503, 18504, 18505, 18506, 18507, 18508, 18509, 18510, 18511, 18512, 18513, 18514, 18515, 18516, 18517, 18518, 18519, 18520, 18521, 18522, 18523, 18524, 18525, 18526, 18527, 18528, 18529, 18530, 18531, 18532, 18533, 18534, 18535, 18536, 18537, 18538, 18539, 18540, 18541, 18542, 18543, 18544, 18545, 18546, 18547, 18548, 18549, 18550, 18551, 18552, 18553, 18554, 18555, 18556, 18557, 18558, 18559, 18560, 18561, 18562, 18563, 18564, 18565, 18566, 18567, 18568, 18569, 18570, 18571, 18572, 18573, 18574, 18575, 18576, 18577, 18578, 18579, 18580, 18581, 18582, 18583, 18584, 18585, 18586, 18587, 18588, 18589, 18590, 18591, 18592, 18593, 18594, 18595, 18596, 18597, 18598, 18599, 18600, 18601, 18602, 18603, 18604, 18605, 18606, 18607, 18608, 18609, 18610, 18611, 18612, 18613, 18614, 18615, 18616, 18617, 18618, 18619, 18620, 18621, 18622, 18623, 18624, 18625, 18626, 18627, 18628, 18629, 18630, 18631, 18632, 18633, 18634, 18635, 18636, 18637, 18638, 18639, 18640, 18641, 18642, 18643, 18644, 18645, 18646, 18647, 18648, 18649, 18650, 18651, 18652, 18653, 18654, 18655, 18656, 18657, 18658, 18659, 18660, 18661, 18662, 18663, 18664, 18665, 18666, 18667, 18668, 18669, 18670, 18671, 18672, 18673, 18674, 18675, 18676, 18677, 18678, 18679, 18680, 18681, 18682, 18683, 18684, 18685, 18686, 18687, 18688, 18689, 18690, 18691, 18692, 18693, 18694, 18695, 18696, 18697, 18698, 18699, 18700, 18701, 18702, 18703, 18704, 18705, 18706, 18707, 18708, 18709, 18710, 18711, 18712, 18713, 18714, 18715, 18716, 18717, 18718, 18719, 18720, 18721, 18722, 18723, 18724, 18725, 18726, 18727, 18728, 18729, 18730, 18731, 18732, 18733, 18734, 18735, 18736, 18737, 18738, 18739, 18740, 18741, 18742, 18743, 18744, 18745, 18746, 18747, 18748, 18749, 18750, 18751, 18752, 18753, 18754, 18755, 18756, 18757, 18758, 18759, 18760, 18761, 18762, 18763, 18764, 18765, 18766, 18767, 18768, 18769, 18770, 18771, 18772, 18773, 18774, 18775, 18776, 18777, 18778, 18779, 18780, 18781, 18782, 18783, 18784, 18785, 18786, 18787, 18788, 18789, 18790, 18791, 18792, 18793, 18794, 18795, 18796, 18797, 18798, 18799, 18800, 18801, 18802, 18803, 18804, 18805, 18806, 18807, 18808, 18809, 18810, 18811, 18812, 18813, 18814, 18815, 18816, 18817, 18818, 18819, 18820, 18821, 18822, 18823, 18824, 18825, 18826, 18827, 18828, 18829, 18830, 18831, 18832, 18833, 18834, 18835, 18836, 18837, 18838, 18839, 18840, 18841, 18842, 18843, 18844, 18845, 18846, 18847, 18848, 18849, 18850, 18851, 18852, 18853, 18854, 18855, 18856, 18857, 18858, 18859, 18860, 18861, 18862, 18863, 18864, 18865, 18866, 18867, 18868, 18869, 18870, 18871, 18872, 18873, 18874, 18875, 18876, 18877, 18878, 18879, 18880, 18881, 18882, 18883, 18884, 18885, 18886, 18887, 18888, 18889, 18890, 18891, 18892, 18893, 18894, 18895, 18896, 18897, 18898, 18899, 18900, 18901, 18902, 18903, 18904, 18905, 18906, 18907, 18908, 18909, 18910, 18911, 18912, 18913, 18914, 18915, 18916, 18917, 18918, 18919, 18920, 18921, 18922, 18923, 18924, 18925, 18926, 18927, 18928, 18929, 18930, 18931, 18932, 18933, 18934, 18935, 18936, 18937, 18938, 18939, 18940, 18941, 18942, 18943, 18944, 18945, 18946, 18947, 18948, 18949, 18950, 18951, 18952, 18953, 18954, 18955, 18956, 18957, 18958, 18959, 18960, 18961, 18962, 18963, 18964, 18965, 18966, 18967, 18968, 18969, 18970, 18971, 18972, 18973, 18974, 18975, 18976, 18977, 18978, 18979, 18980, 18981, 18982, 18983, 18984, 18985, 18986, 18987, 18988, 18989, 18990, 18991, 18992, 18993, 18994, 18995, 18996, 18997, 18998, 18999, 19000, 19001, 19002, 19003, 19004, 19005, 19006, 19007, 19008, 19009, 19010, 19011, 19012, 19013, 19014, 19015, 19016, 19017, 19018, 19019, 19020, 19021, 19022, 19023, 19024, 19025, 19026, 19027, 19028, 19029, 19030, 19031, 19032, 19033, 19034, 19035, 19036, 19037, 19038, 19039, 19040, 19041, 19042, 19043, 19044, 19045, 19046, 19047, 19048, 19049, 19050, 19051, 19052, 19053, 19054, 19055, 19056, 19057, 19058, 19059, 19060, 19061, 19062, 19063, 19064, 19065, 19066, 19067, 19068, 19069, 19070, 19071, 19072, 19073, 19074, 19075, 19076, 19077, 19078, 19079, 19080, 19081, 19082, 19083, 19084, 19085, 19086, 19087, 19088, 19089, 19090, 19091, 19092, 19093, 19094, 19095, 19096, 19097, 19098, 19099, 19100, 19101, 19102, 19103, 19104, 19105, 19106, 19107, 19108, 19109, 19110, 19111, 19112, 19113, 19114, 19115, 19116, 19117, 19118, 19119, 19120, 19121, 19122, 19123, 19124, 19125, 19126, 19127, 19128, 19129, 19130, 19131, 19132, 19133, 19134, 19135, 19136, 19137, 19138, 19139, 19140, 19141, 19142, 19143, 19144, 19145, 19146, 19147, 19148, 19149, 19150, 19151, 19152, 19153, 19154, 19155, 19156, 19157, 19158, 19159, 19160, 19161, 19162, 19163, 19164, 19165, 19166, 19167, 19168, 19169, 19170, 19171, 19172, 19173, 19174, 19175, 19176, 19177, 19178, 19179, 19180, 19181, 19182, 19183, 19184, 19185, 19186, 19187, 19188, 19189, 19190, 19191, 19192, 19193, 19194, 19195, 19196, 19197, 19198, 19199, 19200, 19201, 19202, 19203, 19204, 19205, 19206, 19207, 19208, 19209, 19210, 19211, 19212, 19213, 19214, 19215, 19216, 19217, 19218, 19219, 19220, 19221, 19222, 19223, 19224, 19225, 19226, 19227, 19228, 19229, 19230, 19231, 19232, 19233, 19234, 19235, 19236, 19237, 19238, 19239, 19240, 19241, 19242, 19243, 19244, 19245, 19246, 19247, 19248, 19249, 19250, 19251, 19252, 19253, 19254, 19255, 19256, 19257, 19258, 19259, 19260, 19261, 19262, 19263, 19264, 19265, 19266, 19267, 19268, 19269, 19270, 19271, 19272, 19273, 19274, 19275, 19276, 19277, 19278, 19279, 19280, 19281, 19282, 19283, 19284, 19285, 19286, 19287, 19288, 19289, 19290, 19291, 19292, 19293, 19294, 19295, 19296, 19297, 19298, 19299, 19300, 19301, 19302, 19303, 19304, 19305, 19306, 19307, 19308, 19309, 19310, 19311, 19312, 19313, 19314, 19315, 19316, 19317, 19318, 19319, 19320, 19321, 19322, 19323, 19324, 19325, 19326, 19327, 19328, 19329, 19330, 19331, 19332, 19333, 19334, 19335, 19336, 19337, 19338, 19339, 19340, 19341, 19342, 19343, 19344, 19345, 19346, 19347, 19348, 19349, 19350, 19351, 19352, 19353, 19354, 19355, 19356, 19357, 19358, 19359, 19360, 19361, 19362, 19363, 19364, 19365, 19366, 19367, 19368, 19369, 19370, 19371, 19372, 19373, 19374, 19375, 19376, 19377, 19378, 19379, 19380, 19381, 19382, 19383, 19384, 19385, 19386, 19387, 19388, 19389, 19390, 19391, 19392, 19393, 19394, 19395, 19396, 19397, 19398, 19399, 19400, 19401, 19402, 19403, 19404, 19405, 19406, 19407, 19408, 19409, 19410, 19411, 19412, 19413, 19414, 19415, 19416, 19417, 19418, 19419, 19420, 19421, 19422, 19423, 19424, 19425, 19426, 19427, 19428, 19429, 19430, 19431, 19432, 19433, 19434, 19435, 19436, 19437, 19438, 19439, 19440, 19441, 19442, 19443, 19444, 19445, 19446, 19447, 19448, 19449, 19450, 19451, 19452, 19453, 19454, 19455, 19456, 19457, 19458, 19459, 19460, 19461, 19462, 19463, 19464, 19465, 19466, 19467, 19468, 19469, 19470, 19471, 19472, 19473, 19474, 19475, 19476, 19477, 19478, 19479, 19480, 19481, 19482, 19483, 19484, 19485, 19486, 19487, 19488, 19489, 19490, 19491, 19492, 19493, 19494, 19495, 19496, 19497, 19498, 19499, 19500, 19501, 19502, 19503, 19504, 19505, 19506, 19507, 19508, 19509, 19510, 19511, 19512, 19513, 19514, 19515, 19516, 19517, 19518, 19519, 19520, 19521, 19522, 19523, 19524, 19525, 19526, 19527, 19528, 19529, 19530, 19531, 19532, 19533, 19534, 19535, 19536, 19537, 19538, 19539, 19540, 19541, 19542, 19543, 19544, 19545, 19546, 19547, 19548, 19549, 19550, 19551, 19552, 19553, 19554, 19555, 19556, 19557, 19558, 19559, 19560, 19561, 19562, 19563, 19564, 19565, 19566, 19567, 19568, 19569, 19570, 19571, 19572, 19573, 19574, 19575, 19576, 19577, 19578, 19579, 19580, 19581, 19582, 19583, 19584, 19585, 19586, 19587, 19588, 19589, 19590, 19591, 19592, 19593, 19594, 19595, 19596, 19597, 19598, 19599, 19600, 19601, 19602, 19603, 19604, 19605, 19606, 19607, 19608, 19609, 19610, 19611, 19612, 19613, 19614, 19615, 19616, 19617, 19618, 19619, 19620, 19621, 19622, 19623, 19624, 19625, 19626, 19627, 19628, 19629, 19630, 19631, 19632, 19633, 19634, 19635, 19636, 19637, 19638, 19639, 19640, 19641, 19642, 19643, 19644, 19645, 19646, 19647, 19648, 19649, 19650, 19651, 19652, 19653, 19654, 19655, 19656, 19657, 19658, 19659, 19660, 19661, 19662, 19663, 19664, 19665, 19666, 19667, 19668, 19669, 19670, 19671, 19672, 19673, 19674, 19675, 19676, 19677, 19678, 19679, 19680, 19681, 19682, 19683, 19684, 19685, 19686, 19687, 19688, 19689, 19690, 19691, 19692, 19693, 19694, 19695, 19696, 19697, 19698, 19699, 19700, 19701, 19702, 19703, 19704, 19705, 19706, 19707, 19708, 19709, 19710, 19711, 19712, 19713, 19714, 19715, 19716, 19717, 19718, 19719, 19720, 19721, 19722, 19723, 19724, 19725, 19726, 19727, 19728, 19729, 19730, 19731, 19732, 19733, 19734, 19735, 19736, 19737, 19738, 19739, 19740, 19741, 19742, 19743, 19744, 19745, 19746, 19747, 19748, 19749, 19750, 19751, 19752, 19753, 19754, 19755, 19756, 19757, 19758, 19759, 19760, 19761, 19762, 19763, 19764, 19765, 19766, 19767, 19768, 19769, 19770, 19771, 19772, 19773, 19774, 19775, 19776, 19777, 19778, 19779, 19780, 19781, 19782, 19783, 19784, 19785, 19786, 19787, 19788, 19789, 19790, 19791, 19792, 19793, 19794, 19795, 19796, 19797, 19798, 19799, 19800, 19801, 19802, 19803, 19804, 19805, 19806, 19807, 19808, 19809, 19810, 19811, 19812, 19813, 19814, 19815, 19816, 19817, 19818, 19819, 19820, 19821, 19822, 19823, 19824, 19825, 19826, 19827, 19828, 19829, 19830, 19831, 19832, 19833, 19834, 19835, 19836, 19837, 19838, 19839, 19840, 19841, 19842, 19843, 19844, 19845, 19846, 19847, 19848, 19849, 19850, 19851, 19852, 19853, 19854, 19855, 19856, 19857, 19858, 19859, 19860, 19861, 19862, 19863, 19864, 19865, 19866, 19867, 19868, 19869, 19870, 19871, 19872, 19873, 19874, 19875, 19876, 19877, 19878, 19879, 19880, 19881, 19882, 19883, 19884, 19885, 19886, 19887, 19888, 19889, 19890, 19891, 19892, 19893, 19894, 19895, 19896, 19897, 19898, 19899, 19900, 19901, 19902, 19903, 19904, 19905, 19906, 19907, 19908, 19909, 19910, 19911, 19912, 19913, 19914, 19915, 19916, 19917, 19918, 19919, 19920, 19921, 19922, 19923, 19924, 19925, 19926, 19927, 19928, 19929, 19930, 19931, 19932, 19933, 19934, 19935, 19936, 19937, 19938, 19939, 19940, 19941, 19942, 19943, 19944, 19945, 19946, 19947, 19948, 19949, 19950, 19951, 19952, 19953, 19954, 19955, 19956, 19957, 19958, 19959, 19960, 19961, 19962, 19963, 19964, 19965, 19966, 19967, 19968, 19969, 19970, 19971, 19972, 19973, 19974, 19975, 19976, 19977, 19978, 19979, 19980, 19981, 19982, 19983, 19984, 19985, 19986, 19987, 19988, 19989, 19990, 19991, 19992, 19993, 19994, 19995, 19996, 19997, 19998, 19999, 20000, 20001, 20002, 20003, 20004, 20005, 20006, 20007, 20008, 20009, 20010, 20011, 20012, 20013, 20014, 20015, 20016, 20017, 20018, 20019, 20020, 20021, 20022, 20023, 20024, 20025, 20026, 20027, 20028, 20029, 20030, 20031, 20032, 20033, 20034, 20035, 20036, 20037, 20038, 20039, 20040, 20041, 20042, 20043, 20044, 20045, 20046, 20047, 20048, 20049, 20050, 20051, 20052, 20053, 20054, 20055, 20056, 20057, 20058, 20059, 20060, 20061, 20062, 20063, 20064, 20065, 20066, 20067, 20068, 20069, 20070, 20071, 20072, 20073, 20074, 20075, 20076, 20077, 20078, 20079, 20080, 20081, 20082, 20083, 20084, 20085, 20086, 20087, 20088, 20089, 20090, 20091, 20092, 20093, 20094, 20095, 20096, 20097, 20098, 20099, 20100, 20101, 20102, 20103, 20104, 20105, 20106, 20107, 20108, 20109, 20110, 20111, 20112, 20113, 20114, 20115, 20116, 20117, 20118, 20119, 20120, 20121, 20122, 20123, 20124, 20125, 20126, 20127, 20128, 20129, 20130, 20131, 20132, 20133, 20134, 20135, 20136, 20137, 20138, 20139, 20140, 20141, 20142, 20143, 20144, 20145, 20146, 20147, 20148, 20149, 20150, 20151, 20152, 20153, 20154, 20155, 20156, 20157, 20158, 20159, 20160, 20161, 20162, 20163, 20164, 20165, 20166, 20167, 20168, 20169, 20170, 20171, 20172, 20173, 20174, 20175, 20176, 20177, 20178, 20179, 20180, 20181, 20182, 20183, 20184, 20185, 20186, 20187, 20188, 20189, 20190, 20191, 20192, 20193, 20194, 20195, 20196, 20197, 20198, 20199, 20200, 20201, 20202, 20203, 20204, 20205, 20206, 20207, 20208, 20209, 20210, 20211, 20212, 20213, 20214, 20215, 20216, 20217, 20218, 20219, 20220, 20221, 20222, 20223, 20224, 20225, 20226, 20227, 20228, 20229, 20230, 20231, 20232, 20233, 20234, 20235, 20236, 20237, 20238, 20239, 20240, 20241, 20242, 20243, 20244, 20245, 20246, 20247, 20248, 20249, 20250, 20251, 20252, 20253, 20254, 20255, 20256, 20257, 20258, 20259, 20260, 20261, 20262, 20263, 20264, 20265, 20266, 20267, 20268, 20269, 20270, 20271, 20272, 20273, 20274, 20275, 20276, 20277, 20278, 20279, 20280, 20281, 20282, 20283, 20284, 20285, 20286, 20287, 20288, 20289, 20290, 20291, 20292, 20293, 20294, 20295, 20296, 20297, 20298, 20299, 20300, 20301, 20302, 20303, 20304, 20305, 20306, 20307, 20308, 20309, 20310, 20311, 20312, 20313, 20314, 20315, 20316, 20317, 20318, 20319, 20320, 20321, 20322, 20323, 20324, 20325, 20326, 20327, 20328, 20329, 20330, 20331, 20332, 20333, 20334, 20335, 20336, 20337, 20338, 20339, 20340, 20341, 20342, 20343, 20344, 20345, 20346, 20347, 20348, 20349, 20350, 20351, 20352, 20353, 20354, 20355, 20356, 20357, 20358, 20359, 20360, 20361, 20362, 20363, 20364, 20365, 20366, 20367, 20368, 20369, 20370, 20371, 20372, 20373, 20374, 20375, 20376, 20377, 20378, 20379, 20380, 20381, 20382, 20383, 20384, 20385, 20386, 20387, 20388, 20389, 20390, 20391, 20392, 20393, 20394, 20395, 20396, 20397, 20398, 20399, 20400, 20401, 20402, 20403, 20404, 20405, 20406, 20407, 20408, 20409, 20410, 20411, 20412, 20413, 20414, 20415, 20416, 20417, 20418, 20419, 20420, 20421, 20422, 20423, 20424, 20425, 20426, 20427, 20428, 20429, 20430, 20431, 20432, 20433, 20434, 20435, 20436, 20437, 20438, 20439, 20440, 20441, 20442, 20443, 20444, 20445, 20446, 20447, 20448, 20449, 20450, 20451, 20452, 20453, 20454, 20455, 20456, 20457, 20458, 20459, 20460, 20461, 20462, 20463, 20464, 20465, 20466, 20467, 20468, 20469, 20470, 20471, 20472, 20473, 20474, 20475, 20476, 20477, 20478, 20479, 20480, 20481, 20482, 20483, 20484, 20485, 20486, 20487, 20488, 20489, 20490, 20491, 20492, 20493, 20494, 20495, 20496, 20497, 20498, 20499, 20500, 20501, 20502, 20503, 20504, 20505, 20506, 20507, 20508, 20509, 20510, 20511, 20512, 20513, 20514, 20515, 20516, 20517, 20518, 20519, 20520, 20521, 20522, 20523, 20524, 20525, 20526, 20527, 20528, 20529, 20530, 20531, 20532, 20533, 20534, 20535, 20536, 20537, 20538, 20539, 20540, 20541, 20542, 20543, 20544, 20545, 20546, 20547, 20548, 20549, 20550, 20551, 20552, 20553, 20554, 20555, 20556, 20557, 20558, 20559, 20560, 20561, 20562, 20563, 20564, 20565, 20566, 20567, 20568, 20569, 20570, 20571, 20572, 20573, 20574, 20575, 20576, 20577, 20578, 20579, 20580, 20581, 20582, 20583, 20584, 20585, 20586, 20587, 20588, 20589, 20590, 20591, 20592, 20593, 20594, 20595, 20596, 20597, 20598, 20599, 20600, 20601, 20602, 20603, 20604, 20605, 20606, 20607, 20608, 20609, 20610, 20611, 20612, 20613, 20614, 20615, 20616, 20617, 20618, 20619, 20620, 20621, 20622, 20623, 20624, 20625, 20626, 20627, 20628, 20629, 20630, 20631, 20632, 20633, 20634, 20635, 20636, 20637, 20638, 20639, 20640, 20641, 20642, 20643, 20644, 20645, 20646, 20647, 20648, 20649, 20650, 20651, 20652, 20653, 20654, 20655, 20656, 20657, 20658, 20659, 20660, 20661, 20662, 20663, 20664, 20665, 20666, 20667, 20668, 20669, 20670, 20671, 20672, 20673, 20674, 20675, 20676, 20677, 20678, 20679, 20680, 20681, 20682, 20683, 20684, 20685, 20686, 20687, 20688, 20689, 20690, 20691, 20692, 20693, 20694, 20695, 20696, 20697, 20698, 20699, 20700, 20701, 20702, 20703, 20704, 20705, 20706, 20707, 20708, 20709, 20710, 20711, 20712, 20713, 20714, 20715, 20716, 20717, 20718, 20719, 20720, 20721, 20722, 20723, 20724, 20725, 20726, 20727, 20728, 20729, 20730, 20731, 20732, 20733, 20734, 20735, 20736, 20737, 20738, 20739, 20740, 20741, 20742, 20743, 20744, 20745, 20746, 20747, 20748, 20749, 20750, 20751, 20752, 20753, 20754, 20755, 20756, 20757, 20758, 20759, 20760, 20761, 20762, 20763, 20764, 20765, 20766, 20767, 20768, 20769, 20770, 20771, 20772, 20773, 20774, 20775, 20776, 20777, 20778, 20779, 20780, 20781, 20782, 20783, 20784, 20785, 20786, 20787, 20788, 20789, 20790, 20791, 20792, 20793, 20794, 20795, 20796, 20797, 20798, 20799, 20800, 20801, 20802, 20803, 20804, 20805, 20806, 20807, 20808, 20809, 20810, 20811, 20812, 20813, 20814, 20815, 20816, 20817, 20818, 20819, 20820, 20821, 20822, 20823, 20824, 20825, 20826, 20827, 20828, 20829, 20830, 20831, 20832, 20833, 20834, 20835, 20836, 20837, 20838, 20839, 20840, 20841, 20842, 20843, 20844, 20845, 20846, 20847, 20848, 20849, 20850, 20851, 20852, 20853, 20854, 20855, 20856, 20857, 20858, 20859, 20860, 20861, 20862, 20863, 20864, 20865, 20866, 20867, 20868, 20869, 20870, 20871, 20872, 20873, 20874, 20875, 20876, 20877, 20878, 20879, 20880, 20881, 20882, 20883, 20884, 20885, 20886, 20887, 20888, 20889, 20890, 20891, 20892, 20893, 20894, 20895, 20896, 20897, 20898, 20899, 20900, 20901, 20902, 20903, 20904, 20905, 20906, 20907, 20908, 20909, 20910, 20911, 20912, 20913, 20914, 20915, 20916, 20917, 20918, 20919, 20920, 20921, 20922, 20923, 20924, 20925, 20926, 20927, 20928, 20929, 20930, 20931, 20932, 20933, 20934, 20935, 20936, 20937, 20938, 20939, 20940, 20941, 20942, 20943, 20944, 20945, 20946, 20947, 20948, 20949, 20950, 20951, 20952, 20953, 20954, 20955, 20956, 20957, 20958, 20959, 20960, 20961, 20962, 20963, 20964, 20965, 20966, 20967, 20968, 20969, 20970, 20971, 20972, 20973, 20974, 20975, 20976, 20977, 20978, 20979, 20980, 20981, 20982, 20983, 20984, 20985, 20986, 20987, 20988, 20989, 20990, 20991, 20992, 20993, 20994, 20995, 20996, 20997, 20998, 20999, 21000, 21001, 21002, 21003, 21004, 21005, 21006, 21007, 21008, 21009, 21010, 21011, 21012, 21013, 21014, 21015, 21016, 21017, 21018, 21019, 21020, 21021, 21022, 21023, 21024, 21025, 21026, 21027, 21028, 21029, 21030, 21031, 21032, 21033, 21034, 21035, 21036, 21037, 21038, 21039, 21040, 21041, 21042, 21043, 21044, 21045, 21046, 21047, 21048, 21049, 21050, 21051, 21052, 21053, 21054, 21055, 21056, 21057, 21058, 21059, 21060, 21061, 21062, 21063, 21064, 21065, 21066, 21067, 21068, 21069, 21070, 21071, 21072, 21073, 21074, 21075, 21076, 21077, 21078, 21079, 21080, 21081, 21082, 21083, 21084, 21085, 21086, 21087, 21088, 21089, 21090, 21091, 21092, 21093, 21094, 21095, 21096, 21097, 21098, 21099, 21100, 21101, 21102, 21103, 21104, 21105, 21106, 21107, 21108, 21109, 21110, 21111, 21112, 21113, 21114, 21115, 21116, 21117, 21118, 21119, 21120, 21121, 21122, 21123, 21124, 21125, 21126, 21127, 21128, 21129, 21130, 21131, 21132, 21133, 21134, 21135, 21136, 21137, 21138, 21139, 21140, 21141, 21142, 21143, 21144, 21145, 21146, 21147, 21148, 21149, 21150, 21151, 21152, 21153, 21154, 21155, 21156, 21157, 21158, 21159, 21160, 21161, 21162, 21163, 21164, 21165, 21166, 21167, 21168, 21169, 21170, 21171, 21172, 21173, 21174, 21175, 21176, 21177, 21178, 21179, 21180, 21181, 21182, 21183, 21184, 21185, 21186, 21187, 21188, 21189, 21190, 21191, 21192, 21193, 21194, 21195, 21196, 21197, 21198, 21199, 21200, 21201, 21202, 21203, 21204, 21205, 21206, 21207, 21208, 21209, 21210, 21211, 21212, 21213, 21214, 21215, 21216, 21217, 21218, 21219, 21220, 21221, 21222, 21223, 21224, 21225, 21226, 21227, 21228, 21229, 21230, 21231, 21232, 21233, 21234, 21235, 21236, 21237, 21238, 21239, 21240, 21241, 21242, 21243, 21244, 21245, 21246, 21247, 21248, 21249, 21250, 21251, 21252, 21253, 21254, 21255, 21256, 21257, 21258, 21259, 21260, 21261, 21262, 21263, 21264, 21265, 21266, 21267, 21268, 21269, 21270, 21271, 21272, 21273, 21274, 21275, 21276, 21277, 21278, 21279, 21280, 21281, 21282, 21283, 21284, 21285, 21286, 21287, 21288, 21289, 21290, 21291, 21292, 21293, 21294, 21295, 21296, 21297, 21298, 21299, 21300, 21301, 21302, 21303, 21304, 21305, 21306, 21307, 21308, 21309, 21310, 21311, 21312, 21313, 21314, 21315, 21316, 21317, 21318, 21319, 21320, 21321, 21322, 21323, 21324, 21325, 21326, 21327, 21328, 21329, 21330, 21331, 21332, 21333, 21334, 21335, 21336, 21337, 21338, 21339, 21340, 21341, 21342, 21343, 21344, 21345, 21346, 21347, 21348, 21349, 21350, 21351, 21352, 21353, 21354, 21355, 21356, 21357, 21358, 21359, 21360, 21361, 21362, 21363, 21364, 21365, 21366, 21367, 21368, 21369, 21370, 21371, 21372, 21373, 21374, 21375, 21376, 21377, 21378, 21379, 21380, 21381, 21382, 21383, 21384, 21385, 21386, 21387, 21388, 21389, 21390, 21391, 21392, 21393, 21394, 21395, 21396, 21397, 21398, 21399, 21400, 21401, 21402, 21403, 21404, 21405, 21406, 21407, 21408, 21409, 21410, 21411, 21412, 21413, 21414, 21415, 21416, 21417, 21418, 21419, 21420, 21421, 21422, 21423, 21424, 21425, 21426, 21427, 21428, 21429, 21430, 21431, 21432, 21433, 21434, 21435, 21436, 21437, 21438, 21439, 21440, 21441, 21442, 21443, 21444, 21445, 21446, 21447, 21448, 21449, 21450, 21451, 21452, 21453, 21454, 21455, 21456, 21457, 21458, 21459, 21460, 21461, 21462, 21463, 21464, 21465, 21466, 21467, 21468, 21469, 21470, 21471, 21472, 21473, 21474, 21475, 21476, 21477, 21478, 21479, 21480, 21481, 21482, 21483, 21484, 21485, 21486, 21487, 21488, 21489, 21490, 21491, 21492, 21493, 21494, 21495, 21496, 21497, 21498, 21499, 21500, 21501, 21502, 21503, 21504, 21505, 21506, 21507, 21508, 21509, 21510, 21511, 21512, 21513, 21514, 21515, 21516, 21517, 21518, 21519, 21520, 21521, 21522, 21523, 21524, 21525, 21526, 21527, 21528, 21529, 21530, 21531, 21532, 21533, 21534, 21535, 21536, 21537, 21538, 21539, 21540, 21541, 21542, 21543, 21544, 21545, 21546, 21547, 21548, 21549, 21550, 21551, 21552, 21553, 21554, 21555, 21556, 21557, 21558, 21559, 21560, 21561, 21562, 21563, 21564, 21565, 21566, 21567, 21568, 21569, 21570, 21571, 21572, 21573, 21574, 21575, 21576, 21577, 21578, 21579, 21580, 21581, 21582, 21583, 21584, 21585, 21586, 21587, 21588, 21589, 21590, 21591, 21592, 21593, 21594, 21595, 21596, 21597, 21598, 21599, 21600, 21601, 21602, 21603, 21604, 21605, 21606, 21607, 21608, 21609, 21610, 21611, 21612, 21613, 21614, 21615, 21616, 21617, 21618, 21619, 21620, 21621, 21622, 21623, 21624, 21625, 21626, 21627, 21628, 21629, 21630, 21631, 21632, 21633, 21634, 21635, 21636, 21637, 21638, 21639, 21640, 21641, 21642, 21643, 21644, 21645, 21646, 21647, 21648, 21649, 21650, 21651, 21652, 21653, 21654, 21655, 21656, 21657, 21658, 21659, 21660, 21661, 21662, 21663, 21664, 21665, 21666, 21667, 21668, 21669, 21670, 21671, 21672, 21673, 21674, 21675, 21676, 21677, 21678, 21679, 21680, 21681, 21682, 21683, 21684, 21685, 21686, 21687, 21688, 21689, 21690, 21691, 21692, 21693, 21694, 21695, 21696, 21697, 21698, 21699, 21700, 21701, 21702, 21703, 21704, 21705, 21706, 21707, 21708, 21709, 21710, 21711, 21712, 21713, 21714, 21715, 21716, 21717, 21718, 21719, 21720, 21721, 21722, 21723, 21724, 21725, 21726, 21727, 21728, 21729, 21730, 21731, 21732, 21733, 21734, 21735, 21736, 21737, 21738, 21739, 21740, 21741, 21742, 21743, 21744, 21745, 21746, 21747, 21748, 21749, 21750, 21751, 21752, 21753, 21754, 21755, 21756, 21757, 21758, 21759, 21760, 21761, 21762, 21763, 21764, 21765, 21766, 21767, 21768, 21769, 21770, 21771, 21772, 21773, 21774, 21775, 21776, 21777, 21778, 21779, 21780, 21781, 21782, 21783, 21784, 21785, 21786, 21787, 21788, 21789, 21790, 21791, 21792, 21793, 21794, 21795, 21796, 21797, 21798, 21799, 21800, 21801, 21802, 21803, 21804, 21805, 21806, 21807, 21808, 21809, 21810, 21811, 21812, 21813, 21814, 21815, 21816, 21817, 21818, 21819, 21820, 21821, 21822, 21823, 21824, 21825, 21826, 21827, 21828, 21829, 21830, 21831, 21832, 21833, 21834, 21835, 21836, 21837, 21838, 21839, 21840, 21841, 21842, 21843, 21844, 21845, 21846, 21847, 21848, 21849, 21850, 21851, 21852, 21853, 21854, 21855, 21856, 21857, 21858, 21859, 21860, 21861, 21862, 21863, 21864, 21865, 21866, 21867, 21868, 21869, 21870, 21871, 21872, 21873, 21874, 21875, 21876, 21877, 21878, 21879, 21880, 21881, 21882, 21883, 21884, 21885, 21886, 21887, 21888, 21889, 21890, 21891, 21892, 21893, 21894, 21895, 21896, 21897, 21898, 21899, 21900, 21901, 21902, 21903, 21904, 21905, 21906, 21907, 21908, 21909, 21910, 21911, 21912, 21913, 21914, 21915, 21916, 21917, 21918, 21919, 21920, 21921, 21922, 21923, 21924, 21925, 21926, 21927, 21928, 21929, 21930, 21931, 21932, 21933, 21934, 21935, 21936, 21937, 21938, 21939, 21940, 21941, 21942, 21943, 21944, 21945, 21946, 21947, 21948, 21949, 21950, 21951, 21952, 21953, 21954, 21955, 21956, 21957, 21958, 21959, 21960, 21961, 21962, 21963, 21964, 21965, 21966, 21967, 21968, 21969, 21970, 21971, 21972, 21973, 21974, 21975, 21976, 21977, 21978, 21979, 21980, 21981, 21982, 21983, 21984, 21985, 21986, 21987, 21988, 21989, 21990, 21991, 21992, 21993, 21994, 21995, 21996, 21997, 21998, 21999, 22000, 22001, 22002, 22003, 22004, 22005, 22006, 22007, 22008, 22009, 22010, 22011, 22012, 22013, 22014, 22015, 22016, 22017, 22018, 22019, 22020, 22021, 22022, 22023, 22024, 22025, 22026, 22027, 22028, 22029, 22030, 22031, 22032, 22033, 22034, 22035, 22036, 22037, 22038, 22039, 22040, 22041, 22042, 22043, 22044, 22045, 22046, 22047, 22048, 22049, 22050, 22051, 22052, 22053, 22054, 22055, 22056, 22057, 22058, 22059, 22060, 22061, 22062, 22063, 22064, 22065, 22066, 22067, 22068, 22069, 22070, 22071, 22072, 22073, 22074, 22075, 22076, 22077, 22078, 22079, 22080, 22081, 22082, 22083, 22084, 22085, 22086, 22087, 22088, 22089, 22090, 22091, 22092, 22093, 22094, 22095, 22096, 22097, 22098, 22099, 22100, 22101, 22102, 22103, 22104, 22105, 22106, 22107, 22108, 22109, 22110, 22111, 22112, 22113, 22114, 22115, 22116, 22117, 22118, 22119, 22120, 22121, 22122, 22123, 22124, 22125, 22126, 22127, 22128, 22129, 22130, 22131, 22132, 22133, 22134, 22135, 22136, 22137, 22138, 22139, 22140, 22141, 22142, 22143, 22144, 22145, 22146, 22147, 22148, 22149, 22150, 22151, 22152, 22153, 22154, 22155, 22156, 22157, 22158, 22159, 22160, 22161, 22162, 22163, 22164, 22165, 22166, 22167, 22168, 22169, 22170, 22171, 22172, 22173, 22174, 22175, 22176, 22177, 22178, 22179, 22180, 22181, 22182, 22183, 22184, 22185, 22186, 22187, 22188, 22189, 22190, 22191, 22192, 22193, 22194, 22195, 22196, 22197, 22198, 22199, 22200, 22201, 22202, 22203, 22204, 22205, 22206, 22207, 22208, 22209, 22210, 22211, 22212, 22213, 22214, 22215, 22216, 22217, 22218, 22219, 22220, 22221, 22222, 22223, 22224, 22225, 22226, 22227, 22228, 22229, 22230, 22231, 22232, 22233, 22234, 22235, 22236, 22237, 22238, 22239, 22240, 22241, 22242, 22243, 22244, 22245, 22246, 22247, 22248, 22249, 22250, 22251, 22252, 22253, 22254, 22255, 22256, 22257, 22258, 22259, 22260, 22261, 22262, 22263, 22264, 22265, 22266, 22267, 22268, 22269, 22270, 22271, 22272, 22273, 22274, 22275, 22276, 22277, 22278, 22279, 22280, 22281, 22282, 22283, 22284, 22285, 22286, 22287, 22288, 22289, 22290, 22291, 22292, 22293, 22294, 22295, 22296, 22297, 22298, 22299, 22300, 22301, 22302, 22303, 22304, 22305, 22306, 22307, 22308, 22309, 22310, 22311, 22312, 22313, 22314, 22315, 22316, 22317, 22318, 22319, 22320, 22321, 22322, 22323, 22324, 22325, 22326, 22327, 22328, 22329, 22330, 22331, 22332, 22333, 22334, 22335, 22336, 22337, 22338, 22339, 22340, 22341, 22342, 22343, 22344, 22345, 22346, 22347, 22348, 22349, 22350, 22351, 22352, 22353, 22354, 22355, 22356, 22357, 22358, 22359, 22360, 22361, 22362, 22363, 22364, 22365, 22366, 22367, 22368, 22369, 22370, 22371, 22372, 22373, 22374, 22375, 22376, 22377, 22378, 22379, 22380, 22381, 22382, 22383, 22384, 22385, 22386, 22387, 22388, 22389, 22390, 22391, 22392, 22393, 22394, 22395, 22396, 22397, 22398, 22399, 22400, 22401, 22402, 22403, 22404, 22405, 22406, 22407, 22408, 22409, 22410, 22411, 22412, 22413, 22414, 22415, 22416, 22417, 22418, 22419, 22420, 22421, 22422, 22423, 22424, 22425, 22426, 22427, 22428, 22429, 22430, 22431, 22432, 22433, 22434, 22435, 22436, 22437, 22438, 22439, 22440, 22441, 22442, 22443, 22444, 22445, 22446, 22447, 22448, 22449, 22450, 22451, 22452, 22453, 22454, 22455, 22456, 22457, 22458, 22459, 22460, 22461, 22462, 22463, 22464, 22465, 22466, 22467, 22468, 22469, 22470, 22471, 22472, 22473, 22474, 22475, 22476, 22477, 22478, 22479, 22480, 22481, 22482, 22483, 22484, 22485, 22486, 22487, 22488, 22489, 22490, 22491, 22492, 22493, 22494, 22495, 22496, 22497, 22498, 22499, 22500, 22501, 22502, 22503, 22504, 22505, 22506, 22507, 22508, 22509, 22510, 22511, 22512, 22513, 22514, 22515, 22516, 22517, 22518, 22519, 22520, 22521, 22522, 22523, 22524, 22525, 22526, 22527, 22528, 22529, 22530, 22531, 22532, 22533, 22534, 22535, 22536, 22537, 22538, 22539, 22540, 22541, 22542, 22543, 22544, 22545, 22546, 22547, 22548, 22549, 22550, 22551, 22552, 22553, 22554, 22555, 22556, 22557, 22558, 22559, 22560, 22561, 22562, 22563, 22564, 22565, 22566, 22567, 22568, 22569, 22570, 22571, 22572, 22573, 22574, 22575, 22576, 22577, 22578, 22579, 22580, 22581, 22582, 22583, 22584, 22585, 22586, 22587, 22588, 22589, 22590, 22591, 22592, 22593, 22594, 22595, 22596, 22597, 22598, 22599, 22600, 22601, 22602, 22603, 22604, 22605, 22606, 22607, 22608, 22609, 22610, 22611, 22612, 22613, 22614, 22615, 22616, 22617, 22618, 22619, 22620, 22621, 22622, 22623, 22624, 22625, 22626, 22627, 22628, 22629, 22630, 22631, 22632, 22633, 22634, 22635, 22636, 22637, 22638, 22639, 22640, 22641, 22642, 22643, 22644, 22645, 22646, 22647, 22648, 22649, 22650, 22651, 22652, 22653, 22654, 22655, 22656, 22657, 22658, 22659, 22660, 22661, 22662, 22663, 22664, 22665, 22666, 22667, 22668, 22669, 22670, 22671, 22672, 22673, 22674, 22675, 22676, 22677, 22678, 22679, 22680, 22681, 22682, 22683, 22684, 22685, 22686, 22687, 22688, 22689, 22690, 22691, 22692, 22693, 22694, 22695, 22696, 22697, 22698, 22699, 22700, 22701, 22702, 22703, 22704, 22705, 22706, 22707, 22708, 22709, 22710, 22711, 22712, 22713, 22714, 22715, 22716, 22717, 22718, 22719, 22720, 22721, 22722, 22723, 22724, 22725, 22726, 22727, 22728, 22729, 22730, 22731, 22732, 22733, 22734, 22735, 22736, 22737, 22738, 22739, 22740, 22741, 22742, 22743, 22744, 22745, 22746, 22747, 22748, 22749, 22750, 22751, 22752, 22753, 22754, 22755, 22756, 22757, 22758, 22759, 22760, 22761, 22762, 22763, 22764, 22765, 22766, 22767, 22768, 22769, 22770, 22771, 22772, 22773, 22774, 22775, 22776, 22777, 22778, 22779, 22780, 22781, 22782, 22783, 22784, 22785, 22786, 22787, 22788, 22789, 22790, 22791, 22792, 22793, 22794, 22795, 22796, 22797, 22798, 22799, 22800, 22801, 22802, 22803, 22804, 22805, 22806, 22807, 22808, 22809, 22810, 22811, 22812, 22813, 22814, 22815, 22816, 22817, 22818, 22819, 22820, 22821, 22822, 22823, 22824, 22825, 22826, 22827, 22828, 22829, 22830, 22831, 22832, 22833, 22834, 22835, 22836, 22837, 22838, 22839, 22840, 22841, 22842, 22843, 22844, 22845, 22846, 22847, 22848, 22849, 22850, 22851, 22852, 22853, 22854, 22855, 22856, 22857, 22858, 22859, 22860, 22861, 22862, 22863, 22864, 22865, 22866, 22867, 22868, 22869, 22870, 22871, 22872, 22873, 22874, 22875, 22876, 22877, 22878, 22879, 22880, 22881, 22882, 22883, 22884, 22885, 22886, 22887, 22888, 22889, 22890, 22891, 22892, 22893, 22894, 22895, 22896, 22897, 22898, 22899, 22900, 22901, 22902, 22903, 22904, 22905, 22906, 22907, 22908, 22909, 22910, 22911, 22912, 22913, 22914, 22915, 22916, 22917, 22918, 22919, 22920, 22921, 22922, 22923, 22924, 22925, 22926, 22927, 22928, 22929, 22930, 22931, 22932, 22933, 22934, 22935, 22936, 22937, 22938, 22939, 22940, 22941, 22942, 22943, 22944, 22945, 22946, 22947, 22948, 22949, 22950, 22951, 22952, 22953, 22954, 22955, 22956, 22957, 22958, 22959, 22960, 22961, 22962, 22963, 22964, 22965, 22966, 22967, 22968, 22969, 22970, 22971, 22972, 22973, 22974, 22975, 22976, 22977, 22978, 22979, 22980, 22981, 22982, 22983, 22984, 22985, 22986, 22987, 22988, 22989, 22990, 22991, 22992, 22993, 22994, 22995, 22996, 22997, 22998, 22999, 23000, 23001, 23002, 23003, 23004, 23005, 23006, 23007, 23008, 23009, 23010, 23011, 23012, 23013, 23014, 23015, 23016, 23017, 23018, 23019, 23020, 23021, 23022, 23023, 23024, 23025, 23026, 23027, 23028, 23029, 23030, 23031, 23032, 23033, 23034, 23035, 23036, 23037, 23038, 23039, 23040, 23041, 23042, 23043, 23044, 23045, 23046, 23047, 23048, 23049, 23050, 23051, 23052, 23053, 23054, 23055, 23056, 23057, 23058, 23059, 23060, 23061, 23062, 23063, 23064, 23065, 23066, 23067, 23068, 23069, 23070, 23071, 23072, 23073, 23074, 23075, 23076, 23077, 23078, 23079, 23080, 23081, 23082, 23083, 23084, 23085, 23086, 23087, 23088, 23089, 23090, 23091, 23092, 23093, 23094, 23095, 23096, 23097, 23098, 23099, 23100, 23101, 23102, 23103, 23104, 23105, 23106, 23107, 23108, 23109, 23110, 23111, 23112, 23113, 23114, 23115, 23116, 23117, 23118, 23119, 23120, 23121, 23122, 23123, 23124, 23125, 23126, 23127, 23128, 23129, 23130, 23131, 23132, 23133, 23134, 23135, 23136, 23137, 23138, 23139, 23140, 23141, 23142, 23143, 23144, 23145, 23146, 23147, 23148, 23149, 23150, 23151, 23152, 23153, 23154, 23155, 23156, 23157, 23158, 23159, 23160, 23161, 23162, 23163, 23164, 23165, 23166, 23167, 23168, 23169, 23170, 23171, 23172, 23173, 23174, 23175, 23176, 23177, 23178, 23179, 23180, 23181, 23182, 23183, 23184, 23185, 23186, 23187, 23188, 23189, 23190, 23191, 23192, 23193, 23194, 23195, 23196, 23197, 23198, 23199, 23200, 23201, 23202, 23203, 23204, 23205, 23206, 23207, 23208, 23209, 23210, 23211, 23212, 23213, 23214, 23215, 23216, 23217, 23218, 23219, 23220, 23221, 23222, 23223, 23224, 23225, 23226, 23227, 23228, 23229, 23230, 23231, 23232, 23233, 23234, 23235, 23236, 23237, 23238, 23239, 23240, 23241, 23242, 23243, 23244, 23245, 23246, 23247, 23248, 23249, 23250, 23251, 23252, 23253, 23254, 23255, 23256, 23257, 23258, 23259, 23260, 23261, 23262, 23263, 23264, 23265, 23266, 23267, 23268, 23269, 23270, 23271, 23272, 23273, 23274, 23275, 23276, 23277, 23278, 23279, 23280, 23281, 23282, 23283, 23284, 23285, 23286, 23287, 23288, 23289, 23290, 23291, 23292, 23293, 23294, 23295, 23296, 23297, 23298, 23299, 23300, 23301, 23302, 23303, 23304, 23305, 23306, 23307, 23308, 23309, 23310, 23311, 23312, 23313, 23314, 23315, 23316, 23317, 23318, 23319, 23320, 23321, 23322, 23323, 23324, 23325, 23326, 23327, 23328, 23329, 23330, 23331, 23332, 23333, 23334, 23335, 23336, 23337, 23338, 23339, 23340, 23341, 23342, 23343, 23344, 23345, 23346, 23347, 23348, 23349, 23350, 23351, 23352, 23353, 23354, 23355, 23356, 23357, 23358, 23359, 23360, 23361, 23362, 23363, 23364, 23365, 23366, 23367, 23368, 23369, 23370, 23371, 23372, 23373, 23374, 23375, 23376, 23377, 23378, 23379, 23380, 23381, 23382, 23383, 23384, 23385, 23386, 23387, 23388, 23389, 23390, 23391, 23392, 23393, 23394, 23395, 23396, 23397, 23398, 23399, 23400, 23401, 23402, 23403, 23404, 23405, 23406, 23407, 23408, 23409, 23410, 23411, 23412, 23413, 23414, 23415, 23416, 23417, 23418, 23419, 23420, 23421, 23422, 23423, 23424, 23425, 23426, 23427, 23428, 23429, 23430, 23431, 23432, 23433, 23434, 23435, 23436, 23437, 23438, 23439, 23440, 23441, 23442, 23443, 23444, 23445, 23446, 23447, 23448, 23449, 23450, 23451, 23452, 23453, 23454, 23455, 23456, 23457, 23458, 23459, 23460, 23461, 23462, 23463, 23464, 23465, 23466, 23467, 23468, 23469, 23470, 23471, 23472, 23473, 23474, 23475, 23476, 23477, 23478, 23479, 23480, 23481, 23482, 23483, 23484, 23485, 23486, 23487, 23488, 23489, 23490, 23491, 23492, 23493, 23494, 23495, 23496, 23497, 23498, 23499, 23500, 23501, 23502, 23503, 23504, 23505, 23506, 23507, 23508, 23509, 23510, 23511, 23512, 23513, 23514, 23515, 23516, 23517, 23518, 23519, 23520, 23521, 23522, 23523, 23524, 23525, 23526, 23527, 23528, 23529, 23530, 23531, 23532, 23533, 23534, 23535, 23536, 23537, 23538, 23539, 23540, 23541, 23542, 23543, 23544, 23545, 23546, 23547, 23548, 23549, 23550, 23551, 23552, 23553, 23554, 23555, 23556, 23557, 23558, 23559, 23560, 23561, 23562, 23563, 23564, 23565, 23566, 23567, 23568, 23569, 23570, 23571, 23572, 23573, 23574, 23575, 23576, 23577, 23578, 23579, 23580, 23581, 23582, 23583, 23584, 23585, 23586, 23587, 23588, 23589, 23590, 23591, 23592, 23593, 23594, 23595, 23596, 23597, 23598, 23599, 23600, 23601, 23602, 23603, 23604, 23605, 23606, 23607, 23608, 23609, 23610, 23611, 23612, 23613, 23614, 23615, 23616, 23617, 23618, 23619, 23620, 23621, 23622, 23623, 23624, 23625, 23626, 23627, 23628, 23629, 23630, 23631, 23632, 23633, 23634, 23635, 23636, 23637, 23638, 23639, 23640, 23641, 23642, 23643, 23644, 23645, 23646, 23647, 23648, 23649, 23650, 23651, 23652, 23653, 23654, 23655, 23656, 23657, 23658, 23659, 23660, 23661, 23662, 23663, 23664, 23665, 23666, 23667, 23668, 23669, 23670, 23671, 23672, 23673, 23674, 23675, 23676, 23677, 23678, 23679, 23680, 23681, 23682, 23683, 23684, 23685, 23686, 23687, 23688, 23689, 23690, 23691, 23692, 23693, 23694, 23695, 23696, 23697, 23698, 23699, 23700, 23701, 23702, 23703, 23704, 23705, 23706, 23707, 23708, 23709, 23710, 23711, 23712, 23713, 23714, 23715, 23716, 23717, 23718, 23719, 23720, 23721, 23722, 23723, 23724, 23725, 23726, 23727, 23728, 23729, 23730, 23731, 23732, 23733, 23734, 23735, 23736, 23737, 23738, 23739, 23740, 23741, 23742, 23743, 23744, 23745, 23746, 23747, 23748, 23749, 23750, 23751, 23752, 23753, 23754, 23755, 23756, 23757, 23758, 23759, 23760, 23761, 23762, 23763, 23764, 23765, 23766, 23767, 23768, 23769, 23770, 23771, 23772, 23773, 23774, 23775, 23776, 23777, 23778, 23779, 23780, 23781, 23782, 23783, 23784, 23785, 23786, 23787, 23788, 23789, 23790, 23791, 23792, 23793, 23794, 23795, 23796, 23797, 23798, 23799, 23800, 23801, 23802, 23803, 23804, 23805, 23806, 23807, 23808, 23809, 23810, 23811, 23812, 23813, 23814, 23815, 23816, 23817, 23818, 23819, 23820, 23821, 23822, 23823, 23824, 23825, 23826, 23827, 23828, 23829, 23830, 23831, 23832, 23833, 23834, 23835, 23836, 23837, 23838, 23839, 23840, 23841, 23842, 23843, 23844, 23845, 23846, 23847, 23848, 23849, 23850, 23851, 23852, 23853, 23854, 23855, 23856, 23857, 23858, 23859, 23860, 23861, 23862, 23863, 23864, 23865, 23866, 23867, 23868, 23869, 23870, 23871, 23872, 23873, 23874, 23875, 23876, 23877, 23878, 23879, 23880, 23881, 23882, 23883, 23884, 23885, 23886, 23887, 23888, 23889, 23890, 23891, 23892, 23893, 23894, 23895, 23896, 23897, 23898, 23899, 23900, 23901, 23902, 23903, 23904, 23905, 23906, 23907, 23908, 23909, 23910, 23911, 23912, 23913, 23914, 23915, 23916, 23917, 23918, 23919, 23920, 23921, 23922, 23923, 23924, 23925, 23926, 23927, 23928, 23929, 23930, 23931, 23932, 23933, 23934, 23935, 23936, 23937, 23938, 23939, 23940, 23941, 23942, 23943, 23944, 23945, 23946, 23947, 23948, 23949, 23950, 23951, 23952, 23953, 23954, 23955, 23956, 23957, 23958, 23959, 23960, 23961, 23962, 23963, 23964, 23965, 23966, 23967, 23968, 23969, 23970, 23971, 23972, 23973, 23974, 23975, 23976, 23977, 23978, 23979, 23980, 23981, 23982, 23983, 23984, 23985, 23986, 23987, 23988, 23989, 23990, 23991, 23992, 23993, 23994, 23995, 23996, 23997, 23998, 23999, 24000, 24001, 24002, 24003, 24004, 24005, 24006, 24007, 24008, 24009, 24010, 24011, 24012, 24013, 24014, 24015, 24016, 24017, 24018, 24019, 24020, 24021, 24022, 24023, 24024, 24025, 24026, 24027, 24028, 24029, 24030, 24031, 24032, 24033, 24034, 24035, 24036, 24037, 24038, 24039, 24040, 24041, 24042, 24043, 24044, 24045, 24046, 24047, 24048, 24049, 24050, 24051, 24052, 24053, 24054, 24055, 24056, 24057, 24058, 24059, 24060, 24061, 24062, 24063, 24064, 24065, 24066, 24067, 24068, 24069, 24070, 24071, 24072, 24073, 24074, 24075, 24076, 24077, 24078, 24079, 24080, 24081, 24082, 24083, 24084, 24085, 24086, 24087, 24088, 24089, 24090, 24091, 24092, 24093, 24094, 24095, 24096, 24097, 24098, 24099, 24100, 24101, 24102, 24103, 24104, 24105, 24106, 24107, 24108, 24109, 24110, 24111, 24112, 24113, 24114, 24115, 24116, 24117, 24118, 24119, 24120, 24121, 24122, 24123, 24124, 24125, 24126, 24127, 24128, 24129, 24130, 24131, 24132, 24133, 24134, 24135, 24136, 24137, 24138, 24139, 24140, 24141, 24142, 24143, 24144, 24145, 24146, 24147, 24148, 24149, 24150, 24151, 24152, 24153, 24154, 24155, 24156, 24157, 24158, 24159, 24160, 24161, 24162, 24163, 24164, 24165, 24166, 24167, 24168, 24169, 24170, 24171, 24172, 24173, 24174, 24175, 24176, 24177, 24178, 24179, 24180, 24181, 24182, 24183, 24184, 24185, 24186, 24187, 24188, 24189, 24190, 24191, 24192, 24193, 24194, 24195, 24196, 24197, 24198, 24199, 24200, 24201, 24202, 24203, 24204, 24205, 24206, 24207, 24208, 24209, 24210, 24211, 24212, 24213, 24214, 24215, 24216, 24217, 24218, 24219, 24220, 24221, 24222, 24223, 24224, 24225, 24226, 24227, 24228, 24229, 24230, 24231, 24232, 24233, 24234, 24235, 24236, 24237, 24238, 24239, 24240, 24241, 24242, 24243, 24244, 24245, 24246, 24247, 24248, 24249, 24250, 24251, 24252, 24253, 24254, 24255, 24256, 24257, 24258, 24259, 24260, 24261, 24262, 24263, 24264, 24265, 24266, 24267, 24268, 24269, 24270, 24271, 24272, 24273, 24274, 24275, 24276, 24277, 24278, 24279, 24280, 24281, 24282, 24283, 24284, 24285, 24286, 24287, 24288, 24289, 24290, 24291, 24292, 24293, 24294, 24295, 24296, 24297, 24298, 24299, 24300, 24301, 24302, 24303, 24304, 24305, 24306, 24307, 24308, 24309, 24310, 24311, 24312, 24313, 24314, 24315, 24316, 24317, 24318, 24319, 24320, 24321, 24322, 24323, 24324, 24325, 24326, 24327, 24328, 24329, 24330, 24331, 24332, 24333, 24334, 24335, 24336, 24337, 24338, 24339, 24340, 24341, 24342, 24343, 24344, 24345, 24346, 24347, 24348, 24349, 24350, 24351, 24352, 24353, 24354, 24355, 24356, 24357, 24358, 24359, 24360, 24361, 24362, 24363, 24364, 24365, 24366, 24367, 24368, 24369, 24370, 24371, 24372, 24373, 24374, 24375, 24376, 24377, 24378, 24379, 24380, 24381, 24382, 24383, 24384, 24385, 24386, 24387, 24388, 24389, 24390, 24391, 24392, 24393, 24394, 24395, 24396, 24397, 24398, 24399, 24400, 24401, 24402, 24403, 24404, 24405, 24406, 24407, 24408, 24409, 24410, 24411, 24412, 24413, 24414, 24415, 24416, 24417, 24418, 24419, 24420, 24421, 24422, 24423, 24424, 24425, 24426, 24427, 24428, 24429, 24430, 24431, 24432, 24433, 24434, 24435, 24436, 24437, 24438, 24439, 24440, 24441, 24442, 24443, 24444, 24445, 24446, 24447, 24448, 24449, 24450, 24451, 24452, 24453, 24454, 24455, 24456, 24457, 24458, 24459, 24460, 24461, 24462, 24463, 24464, 24465, 24466, 24467, 24468, 24469, 24470, 24471, 24472, 24473, 24474, 24475, 24476, 24477, 24478, 24479, 24480, 24481, 24482, 24483, 24484, 24485, 24486, 24487, 24488, 24489, 24490, 24491, 24492, 24493, 24494, 24495, 24496, 24497, 24498, 24499, 24500, 24501, 24502, 24503, 24504, 24505, 24506, 24507, 24508, 24509, 24510, 24511, 24512, 24513, 24514, 24515, 24516, 24517, 24518, 24519, 24520, 24521, 24522, 24523, 24524, 24525, 24526, 24527, 24528, 24529, 24530, 24531, 24532, 24533, 24534, 24535, 24536, 24537, 24538, 24539, 24540, 24541, 24542, 24543, 24544, 24545, 24546, 24547, 24548, 24549, 24550, 24551, 24552, 24553, 24554, 24555, 24556, 24557, 24558, 24559, 24560, 24561, 24562, 24563, 24564, 24565, 24566, 24567, 24568, 24569, 24570, 24571, 24572, 24573, 24574, 24575, 24576, 24577, 24578, 24579, 24580, 24581, 24582, 24583, 24584, 24585, 24586, 24587, 24588, 24589, 24590, 24591, 24592, 24593, 24594, 24595, 24596, 24597, 24598, 24599, 24600, 24601, 24602, 24603, 24604, 24605, 24606, 24607, 24608, 24609, 24610, 24611, 24612, 24613, 24614, 24615, 24616, 24617, 24618, 24619, 24620, 24621, 24622, 24623, 24624, 24625, 24626, 24627, 24628, 24629, 24630, 24631, 24632, 24633, 24634, 24635, 24636, 24637, 24638, 24639, 24640, 24641, 24642, 24643, 24644, 24645, 24646, 24647, 24648, 24649, 24650, 24651, 24652, 24653, 24654, 24655, 24656, 24657, 24658, 24659, 24660, 24661, 24662, 24663, 24664, 24665, 24666, 24667, 24668, 24669, 24670, 24671, 24672, 24673, 24674, 24675, 24676, 24677, 24678, 24679, 24680, 24681, 24682, 24683, 24684, 24685, 24686, 24687, 24688, 24689, 24690, 24691, 24692, 24693, 24694, 24695, 24696, 24697, 24698, 24699, 24700, 24701, 24702, 24703, 24704, 24705, 24706, 24707, 24708, 24709, 24710, 24711, 24712, 24713, 24714, 24715, 24716, 24717, 24718, 24719, 24720, 24721, 24722, 24723, 24724, 24725, 24726, 24727, 24728, 24729, 24730, 24731, 24732, 24733, 24734, 24735, 24736, 24737, 24738, 24739, 24740, 24741, 24742, 24743, 24744, 24745, 24746, 24747, 24748, 24749, 24750, 24751, 24752, 24753, 24754, 24755, 24756, 24757, 24758, 24759, 24760, 24761, 24762, 24763, 24764, 24765, 24766, 24767, 24768, 24769, 24770, 24771, 24772, 24773, 24774, 24775, 24776, 24777, 24778, 24779, 24780, 24781, 24782, 24783, 24784, 24785, 24786, 24787, 24788, 24789, 24790, 24791, 24792, 24793, 24794, 24795, 24796, 24797, 24798, 24799, 24800, 24801, 24802, 24803, 24804, 24805, 24806, 24807, 24808, 24809, 24810, 24811, 24812, 24813, 24814, 24815, 24816, 24817, 24818, 24819, 24820, 24821, 24822, 24823, 24824, 24825, 24826, 24827, 24828, 24829, 24830, 24831, 24832, 24833, 24834, 24835, 24836, 24837, 24838, 24839, 24840, 24841, 24842, 24843, 24844, 24845, 24846, 24847, 24848, 24849, 24850, 24851, 24852, 24853, 24854, 24855, 24856, 24857, 24858, 24859, 24860, 24861, 24862, 24863, 24864, 24865, 24866, 24867, 24868, 24869, 24870, 24871, 24872, 24873, 24874, 24875, 24876, 24877, 24878, 24879, 24880, 24881, 24882, 24883, 24884, 24885, 24886, 24887, 24888, 24889, 24890, 24891, 24892, 24893, 24894, 24895, 24896, 24897, 24898, 24899, 24900, 24901, 24902, 24903, 24904, 24905, 24906, 24907, 24908, 24909, 24910, 24911, 24912, 24913, 24914, 24915, 24916, 24917, 24918, 24919, 24920, 24921, 24922, 24923, 24924, 24925, 24926, 24927, 24928, 24929, 24930, 24931, 24932, 24933, 24934, 24935, 24936, 24937, 24938, 24939, 24940, 24941, 24942, 24943, 24944, 24945, 24946, 24947, 24948, 24949, 24950, 24951, 24952, 24953, 24954, 24955, 24956, 24957, 24958, 24959, 24960, 24961, 24962, 24963, 24964, 24965, 24966, 24967, 24968, 24969, 24970, 24971, 24972, 24973, 24974, 24975, 24976, 24977, 24978, 24979, 24980, 24981, 24982, 24983, 24984, 24985, 24986, 24987, 24988, 24989, 24990, 24991, 24992, 24993, 24994, 24995, 24996, 24997, 24998, 24999, 25000, 25001, 25002, 25003, 25004, 25005, 25006, 25007, 25008, 25009, 25010, 25011, 25012, 25013, 25014, 25015, 25016, 25017, 25018, 25019, 25020, 25021, 25022, 25023, 25024, 25025, 25026, 25027, 25028, 25029, 25030, 25031, 25032, 25033, 25034, 25035, 25036, 25037, 25038, 25039, 25040, 25041, 25042, 25043, 25044, 25045, 25046, 25047, 25048, 25049, 25050, 25051, 25052, 25053, 25054, 25055, 25056, 25057, 25058, 25059, 25060, 25061, 25062, 25063, 25064, 25065, 25066, 25067, 25068, 25069, 25070, 25071, 25072, 25073, 25074, 25075, 25076, 25077, 25078, 25079, 25080, 25081, 25082, 25083, 25084, 25085, 25086, 25087, 25088, 25089, 25090, 25091, 25092, 25093, 25094, 25095, 25096, 25097, 25098, 25099, 25100, 25101, 25102, 25103, 25104, 25105, 25106, 25107, 25108, 25109, 25110, 25111, 25112, 25113, 25114, 25115, 25116, 25117, 25118, 25119, 25120, 25121, 25122, 25123, 25124, 25125, 25126, 25127, 25128, 25129, 25130, 25131, 25132, 25133, 25134, 25135, 25136, 25137, 25138, 25139, 25140, 25141, 25142, 25143, 25144, 25145, 25146, 25147, 25148, 25149, 25150, 25151, 25152, 25153, 25154, 25155, 25156, 25157, 25158, 25159, 25160, 25161, 25162, 25163, 25164, 25165, 25166, 25167, 25168, 25169, 25170, 25171, 25172, 25173, 25174, 25175, 25176, 25177, 25178, 25179, 25180, 25181, 25182, 25183, 25184, 25185, 25186, 25187, 25188, 25189, 25190, 25191, 25192, 25193, 25194, 25195, 25196, 25197, 25198, 25199, 25200, 25201, 25202, 25203, 25204, 25205, 25206, 25207, 25208, 25209, 25210, 25211, 25212, 25213, 25214, 25215, 25216, 25217, 25218, 25219, 25220, 25221, 25222, 25223, 25224, 25225, 25226, 25227, 25228, 25229, 25230, 25231, 25232, 25233, 25234, 25235, 25236, 25237, 25238, 25239, 25240, 25241, 25242, 25243, 25244, 25245, 25246, 25247, 25248, 25249, 25250, 25251, 25252, 25253, 25254, 25255, 25256, 25257, 25258, 25259, 25260, 25261, 25262, 25263, 25264, 25265, 25266, 25267, 25268, 25269, 25270, 25271, 25272, 25273, 25274, 25275, 25276, 25277, 25278, 25279, 25280, 25281, 25282, 25283, 25284, 25285, 25286, 25287, 25288, 25289, 25290, 25291, 25292, 25293, 25294, 25295, 25296, 25297, 25298, 25299, 25300, 25301, 25302, 25303, 25304, 25305, 25306, 25307, 25308, 25309, 25310, 25311, 25312, 25313, 25314, 25315, 25316, 25317, 25318, 25319, 25320, 25321, 25322, 25323, 25324, 25325, 25326, 25327, 25328, 25329, 25330, 25331, 25332, 25333, 25334, 25335, 25336, 25337, 25338, 25339, 25340, 25341, 25342, 25343, 25344, 25345, 25346, 25347, 25348, 25349, 25350, 25351, 25352, 25353, 25354, 25355, 25356, 25357, 25358, 25359, 25360, 25361, 25362, 25363, 25364, 25365, 25366, 25367, 25368, 25369, 25370, 25371, 25372, 25373, 25374, 25375, 25376, 25377, 25378, 25379, 25380, 25381, 25382, 25383, 25384, 25385, 25386, 25387, 25388, 25389, 25390, 25391, 25392, 25393, 25394, 25395, 25396, 25397, 25398, 25399, 25400, 25401, 25402, 25403, 25404, 25405, 25406, 25407, 25408, 25409, 25410, 25411, 25412, 25413, 25414, 25415, 25416, 25417, 25418, 25419, 25420, 25421, 25422, 25423, 25424, 25425, 25426, 25427, 25428, 25429, 25430, 25431, 25432, 25433, 25434, 25435, 25436, 25437, 25438, 25439, 25440, 25441, 25442, 25443, 25444, 25445, 25446, 25447, 25448, 25449, 25450, 25451, 25452, 25453, 25454, 25455, 25456, 25457, 25458, 25459, 25460, 25461, 25462, 25463, 25464, 25465, 25466, 25467, 25468, 25469, 25470, 25471, 25472, 25473, 25474, 25475, 25476, 25477, 25478, 25479, 25480, 25481, 25482, 25483, 25484, 25485, 25486, 25487, 25488, 25489, 25490, 25491, 25492, 25493, 25494, 25495, 25496, 25497, 25498, 25499, 25500, 25501, 25502, 25503, 25504, 25505, 25506, 25507, 25508, 25509, 25510, 25511, 25512, 25513, 25514, 25515, 25516, 25517, 25518, 25519, 25520, 25521, 25522, 25523, 25524, 25525, 25526, 25527, 25528, 25529, 25530, 25531, 25532, 25533, 25534, 25535, 25536, 25537, 25538, 25539, 25540, 25541, 25542, 25543, 25544, 25545, 25546, 25547, 25548, 25549, 25550, 25551, 25552, 25553, 25554, 25555, 25556, 25557, 25558, 25559, 25560, 25561, 25562, 25563, 25564, 25565, 25566, 25567, 25568, 25569, 25570, 25571, 25572, 25573, 25574, 25575, 25576, 25577, 25578, 25579, 25580, 25581, 25582, 25583, 25584, 25585, 25586, 25587, 25588, 25589, 25590, 25591, 25592, 25593, 25594, 25595, 25596, 25597, 25598, 25599, 25600, 25601, 25602, 25603, 25604, 25605, 25606, 25607, 25608, 25609, 25610, 25611, 25612, 25613, 25614, 25615, 25616, 25617, 25618, 25619, 25620, 25621, 25622, 25623, 25624, 25625, 25626, 25627, 25628, 25629, 25630, 25631, 25632, 25633, 25634, 25635, 25636, 25637, 25638, 25639, 25640, 25641, 25642, 25643, 25644, 25645, 25646, 25647, 25648, 25649, 25650, 25651, 25652, 25653, 25654, 25655, 25656, 25657, 25658, 25659, 25660, 25661, 25662, 25663, 25664, 25665, 25666, 25667, 25668, 25669, 25670, 25671, 25672, 25673, 25674, 25675, 25676, 25677, 25678, 25679, 25680, 25681, 25682, 25683, 25684, 25685, 25686, 25687, 25688, 25689, 25690, 25691, 25692, 25693, 25694, 25695, 25696, 25697, 25698, 25699, 25700, 25701, 25702, 25703, 25704, 25705, 25706, 25707, 25708, 25709, 25710, 25711, 25712, 25713, 25714, 25715, 25716, 25717, 25718, 25719, 25720, 25721, 25722, 25723, 25724, 25725, 25726, 25727, 25728, 25729, 25730, 25731, 25732, 25733, 25734, 25735, 25736, 25737, 25738, 25739, 25740, 25741, 25742, 25743, 25744, 25745, 25746, 25747, 25748, 25749, 25750, 25751, 25752, 25753, 25754, 25755, 25756, 25757, 25758, 25759, 25760, 25761, 25762, 25763, 25764, 25765, 25766, 25767, 25768, 25769, 25770, 25771, 25772, 25773, 25774, 25775, 25776, 25777, 25778, 25779, 25780, 25781, 25782, 25783, 25784, 25785, 25786, 25787, 25788, 25789, 25790, 25791, 25792, 25793, 25794, 25795, 25796, 25797, 25798, 25799, 25800, 25801, 25802, 25803, 25804, 25805, 25806, 25807, 25808, 25809, 25810, 25811, 25812, 25813, 25814, 25815, 25816, 25817, 25818, 25819, 25820, 25821, 25822, 25823, 25824, 25825, 25826, 25827, 25828, 25829, 25830, 25831, 25832, 25833, 25834, 25835, 25836, 25837, 25838, 25839, 25840, 25841, 25842, 25843, 25844, 25845, 25846, 25847, 25848, 25849, 25850, 25851, 25852, 25853, 25854, 25855, 25856, 25857, 25858, 25859, 25860, 25861, 25862, 25863, 25864, 25865, 25866, 25867, 25868, 25869, 25870, 25871, 25872, 25873, 25874, 25875, 25876, 25877, 25878, 25879, 25880, 25881, 25882, 25883, 25884, 25885, 25886, 25887, 25888, 25889, 25890, 25891, 25892, 25893, 25894, 25895, 25896, 25897, 25898, 25899, 25900, 25901, 25902, 25903, 25904, 25905, 25906, 25907, 25908, 25909, 25910, 25911, 25912, 25913, 25914, 25915, 25916, 25917, 25918, 25919, 25920, 25921, 25922, 25923, 25924, 25925, 25926, 25927, 25928, 25929, 25930, 25931, 25932, 25933, 25934, 25935, 25936, 25937, 25938, 25939, 25940, 25941, 25942, 25943, 25944, 25945, 25946, 25947, 25948, 25949, 25950, 25951, 25952, 25953, 25954, 25955, 25956, 25957, 25958, 25959, 25960, 25961, 25962, 25963, 25964, 25965, 25966, 25967, 25968, 25969, 25970, 25971, 25972, 25973, 25974, 25975, 25976, 25977, 25978, 25979, 25980, 25981, 25982, 25983, 25984, 25985, 25986, 25987, 25988, 25989, 25990, 25991, 25992, 25993, 25994, 25995, 25996, 25997, 25998, 25999, 26000, 26001, 26002, 26003, 26004, 26005, 26006, 26007, 26008, 26009, 26010, 26011, 26012, 26013, 26014, 26015, 26016, 26017, 26018, 26019, 26020, 26021, 26022, 26023, 26024, 26025, 26026, 26027, 26028, 26029, 26030, 26031, 26032, 26033, 26034, 26035, 26036, 26037, 26038, 26039, 26040, 26041, 26042, 26043, 26044, 26045, 26046, 26047, 26048, 26049, 26050, 26051, 26052, 26053, 26054, 26055, 26056, 26057, 26058, 26059, 26060, 26061, 26062, 26063, 26064, 26065, 26066, 26067, 26068, 26069, 26070, 26071, 26072, 26073, 26074, 26075, 26076, 26077, 26078, 26079, 26080, 26081, 26082, 26083, 26084, 26085, 26086, 26087, 26088, 26089, 26090, 26091, 26092, 26093, 26094, 26095, 26096, 26097, 26098, 26099, 26100, 26101, 26102, 26103, 26104, 26105, 26106, 26107, 26108, 26109, 26110, 26111, 26112, 26113, 26114, 26115, 26116, 26117, 26118, 26119, 26120, 26121, 26122, 26123, 26124, 26125, 26126, 26127, 26128, 26129, 26130, 26131, 26132, 26133, 26134, 26135, 26136, 26137, 26138, 26139, 26140, 26141, 26142, 26143, 26144, 26145, 26146, 26147, 26148, 26149, 26150, 26151, 26152, 26153, 26154, 26155, 26156, 26157, 26158, 26159, 26160, 26161, 26162, 26163, 26164, 26165, 26166, 26167, 26168, 26169, 26170, 26171, 26172, 26173, 26174, 26175, 26176, 26177, 26178, 26179, 26180, 26181, 26182, 26183, 26184, 26185, 26186, 26187, 26188, 26189, 26190, 26191, 26192, 26193, 26194, 26195, 26196, 26197, 26198, 26199, 26200, 26201, 26202, 26203, 26204, 26205, 26206, 26207, 26208, 26209, 26210, 26211, 26212, 26213, 26214, 26215, 26216, 26217, 26218, 26219, 26220, 26221, 26222, 26223, 26224, 26225, 26226, 26227, 26228, 26229, 26230, 26231, 26232, 26233, 26234, 26235, 26236, 26237, 26238, 26239, 26240, 26241, 26242, 26243, 26244, 26245, 26246, 26247, 26248, 26249, 26250, 26251, 26252, 26253, 26254, 26255, 26256, 26257, 26258, 26259, 26260, 26261, 26262, 26263, 26264, 26265, 26266, 26267, 26268, 26269, 26270, 26271, 26272, 26273, 26274, 26275, 26276, 26277, 26278, 26279, 26280, 26281, 26282, 26283, 26284, 26285, 26286, 26287, 26288, 26289, 26290, 26291, 26292, 26293, 26294, 26295, 26296, 26297, 26298, 26299, 26300, 26301, 26302, 26303, 26304, 26305, 26306, 26307, 26308, 26309, 26310, 26311, 26312, 26313, 26314, 26315, 26316, 26317, 26318, 26319, 26320, 26321, 26322, 26323, 26324, 26325, 26326, 26327, 26328, 26329, 26330, 26331, 26332, 26333, 26334, 26335, 26336, 26337, 26338, 26339, 26340, 26341, 26342, 26343, 26344, 26345, 26346, 26347, 26348, 26349, 26350, 26351, 26352, 26353, 26354, 26355, 26356, 26357, 26358, 26359, 26360, 26361, 26362, 26363, 26364, 26365, 26366, 26367, 26368, 26369, 26370, 26371, 26372, 26373, 26374, 26375, 26376, 26377, 26378, 26379, 26380, 26381, 26382, 26383, 26384, 26385, 26386, 26387, 26388, 26389, 26390, 26391, 26392, 26393, 26394, 26395, 26396, 26397, 26398, 26399, 26400, 26401, 26402, 26403, 26404, 26405, 26406, 26407, 26408, 26409, 26410, 26411, 26412, 26413, 26414, 26415, 26416, 26417, 26418, 26419, 26420, 26421, 26422, 26423, 26424, 26425, 26426, 26427, 26428, 26429, 26430, 26431, 26432, 26433, 26434, 26435, 26436, 26437, 26438, 26439, 26440, 26441, 26442, 26443, 26444, 26445, 26446, 26447, 26448, 26449, 26450, 26451, 26452, 26453, 26454, 26455, 26456, 26457, 26458, 26459, 26460, 26461, 26462, 26463, 26464, 26465, 26466, 26467, 26468, 26469, 26470, 26471, 26472, 26473, 26474, 26475, 26476, 26477, 26478, 26479, 26480, 26481, 26482, 26483, 26484, 26485, 26486, 26487, 26488, 26489, 26490, 26491, 26492, 26493, 26494, 26495, 26496, 26497, 26498, 26499, 26500, 26501, 26502, 26503, 26504, 26505, 26506, 26507, 26508, 26509, 26510, 26511, 26512, 26513, 26514, 26515, 26516, 26517, 26518, 26519, 26520, 26521, 26522, 26523, 26524, 26525, 26526, 26527, 26528, 26529, 26530, 26531, 26532, 26533, 26534, 26535, 26536, 26537, 26538, 26539, 26540, 26541, 26542, 26543, 26544, 26545, 26546, 26547, 26548, 26549, 26550, 26551, 26552, 26553, 26554, 26555, 26556, 26557, 26558, 26559, 26560, 26561, 26562, 26563, 26564, 26565, 26566, 26567, 26568, 26569, 26570, 26571, 26572, 26573, 26574, 26575, 26576, 26577, 26578, 26579, 26580, 26581, 26582, 26583, 26584, 26585, 26586, 26587, 26588, 26589, 26590, 26591, 26592, 26593, 26594, 26595, 26596, 26597, 26598, 26599, 26600, 26601, 26602, 26603, 26604, 26605, 26606, 26607, 26608, 26609, 26610, 26611, 26612, 26613, 26614, 26615, 26616, 26617, 26618, 26619, 26620, 26621, 26622, 26623, 26624, 26625, 26626, 26627, 26628, 26629, 26630, 26631, 26632, 26633, 26634, 26635, 26636, 26637, 26638, 26639, 26640, 26641, 26642, 26643, 26644, 26645, 26646, 26647, 26648, 26649, 26650, 26651, 26652, 26653, 26654, 26655, 26656, 26657, 26658, 26659, 26660, 26661, 26662, 26663, 26664, 26665, 26666, 26667, 26668, 26669, 26670, 26671, 26672, 26673, 26674, 26675, 26676, 26677, 26678, 26679, 26680, 26681, 26682, 26683, 26684, 26685, 26686, 26687, 26688, 26689, 26690, 26691, 26692, 26693, 26694, 26695, 26696, 26697, 26698, 26699, 26700, 26701, 26702, 26703, 26704, 26705, 26706, 26707, 26708, 26709, 26710, 26711, 26712, 26713, 26714, 26715, 26716, 26717, 26718, 26719, 26720, 26721, 26722, 26723, 26724, 26725, 26726, 26727, 26728, 26729, 26730, 26731, 26732, 26733, 26734, 26735, 26736, 26737, 26738, 26739, 26740, 26741, 26742, 26743, 26744, 26745, 26746, 26747, 26748, 26749, 26750, 26751, 26752, 26753, 26754, 26755, 26756, 26757, 26758, 26759, 26760, 26761, 26762, 26763, 26764, 26765, 26766, 26767, 26768, 26769, 26770, 26771, 26772, 26773, 26774, 26775, 26776, 26777, 26778, 26779, 26780, 26781, 26782, 26783, 26784, 26785, 26786, 26787, 26788, 26789, 26790, 26791, 26792, 26793, 26794, 26795, 26796, 26797, 26798, 26799, 26800, 26801, 26802, 26803, 26804, 26805, 26806, 26807, 26808, 26809, 26810, 26811, 26812, 26813, 26814, 26815, 26816, 26817, 26818, 26819, 26820, 26821, 26822, 26823, 26824, 26825, 26826, 26827, 26828, 26829, 26830, 26831, 26832, 26833, 26834, 26835, 26836, 26837, 26838, 26839, 26840, 26841, 26842, 26843, 26844, 26845, 26846, 26847, 26848, 26849, 26850, 26851, 26852, 26853, 26854, 26855, 26856, 26857, 26858, 26859, 26860, 26861, 26862, 26863, 26864, 26865, 26866, 26867, 26868, 26869, 26870, 26871, 26872, 26873, 26874, 26875, 26876, 26877, 26878, 26879, 26880, 26881, 26882, 26883, 26884, 26885, 26886, 26887, 26888, 26889, 26890, 26891, 26892, 26893, 26894, 26895, 26896, 26897, 26898, 26899, 26900, 26901, 26902, 26903, 26904, 26905, 26906, 26907, 26908, 26909, 26910, 26911, 26912, 26913, 26914, 26915, 26916, 26917, 26918, 26919, 26920, 26921, 26922, 26923, 26924, 26925, 26926, 26927, 26928, 26929, 26930, 26931, 26932, 26933, 26934, 26935, 26936, 26937, 26938, 26939, 26940, 26941, 26942, 26943, 26944, 26945, 26946, 26947, 26948, 26949, 26950, 26951, 26952, 26953, 26954, 26955, 26956, 26957, 26958, 26959, 26960, 26961, 26962, 26963, 26964, 26965, 26966, 26967, 26968, 26969, 26970, 26971, 26972, 26973, 26974, 26975, 26976, 26977, 26978, 26979, 26980, 26981, 26982, 26983, 26984, 26985, 26986, 26987, 26988, 26989, 26990, 26991, 26992, 26993, 26994, 26995, 26996, 26997, 26998, 26999, 27000, 27001, 27002, 27003, 27004, 27005, 27006, 27007, 27008, 27009, 27010, 27011, 27012, 27013, 27014, 27015, 27016, 27017, 27018, 27019, 27020, 27021, 27022, 27023, 27024, 27025, 27026, 27027, 27028, 27029, 27030, 27031, 27032, 27033, 27034, 27035, 27036, 27037, 27038, 27039, 27040, 27041, 27042, 27043, 27044, 27045, 27046, 27047, 27048, 27049, 27050, 27051, 27052, 27053, 27054, 27055, 27056, 27057, 27058, 27059, 27060, 27061, 27062, 27063, 27064, 27065, 27066, 27067, 27068, 27069, 27070, 27071, 27072, 27073, 27074, 27075, 27076, 27077, 27078, 27079, 27080, 27081, 27082, 27083, 27084, 27085, 27086, 27087, 27088, 27089, 27090, 27091, 27092, 27093, 27094, 27095, 27096, 27097, 27098, 27099, 27100, 27101, 27102, 27103, 27104, 27105, 27106, 27107, 27108, 27109, 27110, 27111, 27112, 27113, 27114, 27115, 27116, 27117, 27118, 27119, 27120, 27121, 27122, 27123, 27124, 27125, 27126, 27127, 27128, 27129, 27130, 27131, 27132, 27133, 27134, 27135, 27136, 27137, 27138, 27139, 27140, 27141, 27142, 27143, 27144, 27145, 27146, 27147, 27148, 27149, 27150, 27151, 27152, 27153, 27154, 27155, 27156, 27157, 27158, 27159, 27160, 27161, 27162, 27163, 27164, 27165, 27166, 27167, 27168, 27169, 27170, 27171, 27172, 27173, 27174, 27175, 27176, 27177, 27178, 27179, 27180, 27181, 27182, 27183, 27184, 27185, 27186, 27187, 27188, 27189, 27190, 27191, 27192, 27193, 27194, 27195, 27196, 27197, 27198, 27199, 27200, 27201, 27202, 27203, 27204, 27205, 27206, 27207, 27208, 27209, 27210, 27211, 27212, 27213, 27214, 27215, 27216, 27217, 27218, 27219, 27220, 27221, 27222, 27223, 27224, 27225, 27226, 27227, 27228, 27229, 27230, 27231, 27232, 27233, 27234, 27235, 27236, 27237, 27238, 27239, 27240, 27241, 27242, 27243, 27244, 27245, 27246, 27247, 27248, 27249, 27250, 27251, 27252, 27253, 27254, 27255, 27256, 27257, 27258, 27259, 27260, 27261, 27262, 27263, 27264, 27265, 27266, 27267, 27268, 27269, 27270, 27271, 27272, 27273, 27274, 27275, 27276, 27277, 27278, 27279, 27280, 27281, 27282, 27283, 27284, 27285, 27286, 27287, 27288, 27289, 27290, 27291, 27292, 27293, 27294, 27295, 27296, 27297, 27298, 27299, 27300, 27301, 27302, 27303, 27304, 27305, 27306, 27307, 27308, 27309, 27310, 27311, 27312, 27313, 27314, 27315, 27316, 27317, 27318, 27319, 27320, 27321, 27322, 27323, 27324, 27325, 27326, 27327, 27328, 27329, 27330, 27331, 27332, 27333, 27334, 27335, 27336, 27337, 27338, 27339, 27340, 27341, 27342, 27343, 27344, 27345, 27346, 27347, 27348, 27349, 27350, 27351, 27352, 27353, 27354, 27355, 27356, 27357, 27358, 27359, 27360, 27361, 27362, 27363, 27364, 27365, 27366, 27367, 27368, 27369, 27370, 27371, 27372, 27373, 27374, 27375, 27376, 27377, 27378, 27379, 27380, 27381, 27382, 27383, 27384, 27385, 27386, 27387, 27388, 27389, 27390, 27391, 27392, 27393, 27394, 27395, 27396, 27397, 27398, 27399, 27400, 27401, 27402, 27403, 27404, 27405, 27406, 27407, 27408, 27409, 27410, 27411, 27412, 27413, 27414, 27415, 27416, 27417, 27418, 27419, 27420, 27421, 27422, 27423, 27424, 27425, 27426, 27427, 27428, 27429, 27430, 27431, 27432, 27433, 27434, 27435, 27436, 27437, 27438, 27439, 27440, 27441, 27442, 27443, 27444, 27445, 27446, 27447, 27448, 27449, 27450, 27451, 27452, 27453, 27454, 27455, 27456, 27457, 27458, 27459, 27460, 27461, 27462, 27463, 27464, 27465, 27466, 27467, 27468, 27469, 27470, 27471, 27472, 27473, 27474, 27475, 27476, 27477, 27478, 27479, 27480, 27481, 27482, 27483, 27484, 27485, 27486, 27487, 27488, 27489, 27490, 27491, 27492, 27493, 27494, 27495, 27496, 27497, 27498, 27499, 27500, 27501, 27502, 27503, 27504, 27505, 27506, 27507, 27508, 27509, 27510, 27511, 27512, 27513, 27514, 27515, 27516, 27517, 27518, 27519, 27520, 27521, 27522, 27523, 27524, 27525, 27526, 27527, 27528, 27529, 27530, 27531, 27532, 27533, 27534, 27535, 27536, 27537, 27538, 27539, 27540, 27541, 27542, 27543, 27544, 27545, 27546, 27547, 27548, 27549, 27550, 27551, 27552, 27553, 27554, 27555, 27556, 27557, 27558, 27559, 27560, 27561, 27562, 27563, 27564, 27565, 27566, 27567, 27568, 27569, 27570, 27571, 27572, 27573, 27574, 27575, 27576, 27577, 27578, 27579, 27580, 27581, 27582, 27583, 27584, 27585, 27586, 27587, 27588, 27589, 27590, 27591, 27592, 27593, 27594, 27595, 27596, 27597, 27598, 27599, 27600, 27601, 27602, 27603, 27604, 27605, 27606, 27607, 27608, 27609, 27610, 27611, 27612, 27613, 27614, 27615, 27616, 27617, 27618, 27619, 27620, 27621, 27622, 27623, 27624, 27625, 27626, 27627, 27628, 27629, 27630, 27631, 27632, 27633, 27634, 27635, 27636, 27637, 27638, 27639, 27640, 27641, 27642, 27643, 27644, 27645, 27646, 27647, 27648, 27649, 27650, 27651, 27652, 27653, 27654, 27655, 27656, 27657, 27658, 27659, 27660, 27661, 27662, 27663, 27664, 27665, 27666, 27667, 27668, 27669, 27670, 27671, 27672, 27673, 27674, 27675, 27676, 27677, 27678, 27679, 27680, 27681, 27682, 27683, 27684, 27685, 27686, 27687, 27688, 27689, 27690, 27691, 27692, 27693, 27694, 27695, 27696, 27697, 27698, 27699, 27700, 27701, 27702, 27703, 27704, 27705, 27706, 27707, 27708, 27709, 27710, 27711, 27712, 27713, 27714, 27715, 27716, 27717, 27718, 27719, 27720, 27721, 27722, 27723, 27724, 27725, 27726, 27727, 27728, 27729, 27730, 27731, 27732, 27733, 27734, 27735, 27736, 27737, 27738, 27739, 27740, 27741, 27742, 27743, 27744, 27745, 27746, 27747, 27748, 27749, 27750, 27751, 27752, 27753, 27754, 27755, 27756, 27757, 27758, 27759, 27760, 27761, 27762, 27763, 27764, 27765, 27766, 27767, 27768, 27769, 27770, 27771, 27772, 27773, 27774, 27775, 27776, 27777, 27778, 27779, 27780, 27781, 27782, 27783, 27784, 27785, 27786, 27787, 27788, 27789, 27790, 27791, 27792, 27793, 27794, 27795, 27796, 27797, 27798, 27799, 27800, 27801, 27802, 27803, 27804, 27805, 27806, 27807, 27808, 27809, 27810, 27811, 27812, 27813, 27814, 27815, 27816, 27817, 27818, 27819, 27820, 27821, 27822, 27823, 27824, 27825, 27826, 27827, 27828, 27829, 27830, 27831, 27832, 27833, 27834, 27835, 27836, 27837, 27838, 27839, 27840, 27841, 27842, 27843, 27844, 27845, 27846, 27847, 27848, 27849, 27850, 27851, 27852, 27853, 27854, 27855, 27856, 27857, 27858, 27859, 27860, 27861, 27862, 27863, 27864, 27865, 27866, 27867, 27868, 27869, 27870, 27871, 27872, 27873, 27874, 27875, 27876, 27877, 27878, 27879, 27880, 27881, 27882, 27883, 27884, 27885, 27886, 27887, 27888, 27889, 27890, 27891, 27892, 27893, 27894, 27895, 27896, 27897, 27898, 27899, 27900, 27901, 27902, 27903, 27904, 27905, 27906, 27907, 27908, 27909, 27910, 27911, 27912, 27913, 27914, 27915, 27916, 27917, 27918, 27919, 27920, 27921, 27922, 27923, 27924, 27925, 27926, 27927, 27928, 27929, 27930, 27931, 27932, 27933, 27934, 27935, 27936, 27937, 27938, 27939, 27940, 27941, 27942, 27943, 27944, 27945, 27946, 27947, 27948, 27949, 27950, 27951, 27952, 27953, 27954, 27955, 27956, 27957, 27958, 27959, 27960, 27961, 27962, 27963, 27964, 27965, 27966, 27967, 27968, 27969, 27970, 27971, 27972, 27973, 27974, 27975, 27976, 27977, 27978, 27979, 27980, 27981, 27982, 27983, 27984, 27985, 27986, 27987, 27988, 27989, 27990, 27991, 27992, 27993, 27994, 27995, 27996, 27997, 27998, 27999, 28000, 28001, 28002, 28003, 28004, 28005, 28006, 28007, 28008, 28009, 28010, 28011, 28012, 28013, 28014, 28015, 28016, 28017, 28018, 28019, 28020, 28021, 28022, 28023, 28024, 28025, 28026, 28027, 28028, 28029, 28030, 28031, 28032, 28033, 28034, 28035, 28036, 28037, 28038, 28039, 28040, 28041, 28042, 28043, 28044, 28045, 28046, 28047, 28048, 28049, 28050, 28051, 28052, 28053, 28054, 28055, 28056, 28057, 28058, 28059, 28060, 28061, 28062, 28063, 28064, 28065, 28066, 28067, 28068, 28069, 28070, 28071, 28072, 28073, 28074, 28075, 28076, 28077, 28078, 28079, 28080, 28081, 28082, 28083, 28084, 28085, 28086, 28087, 28088, 28089, 28090, 28091, 28092, 28093, 28094, 28095, 28096, 28097, 28098, 28099, 28100, 28101, 28102, 28103, 28104, 28105, 28106, 28107, 28108, 28109, 28110, 28111, 28112, 28113, 28114, 28115, 28116, 28117, 28118, 28119, 28120, 28121, 28122, 28123, 28124, 28125, 28126, 28127, 28128, 28129, 28130, 28131, 28132, 28133, 28134, 28135, 28136, 28137, 28138, 28139, 28140, 28141, 28142, 28143, 28144, 28145, 28146, 28147, 28148, 28149, 28150, 28151, 28152, 28153, 28154, 28155, 28156, 28157, 28158, 28159, 28160, 28161, 28162, 28163, 28164, 28165, 28166, 28167, 28168, 28169, 28170, 28171, 28172, 28173, 28174, 28175, 28176, 28177, 28178, 28179, 28180, 28181, 28182, 28183, 28184, 28185, 28186, 28187, 28188, 28189, 28190, 28191, 28192, 28193, 28194, 28195, 28196, 28197, 28198, 28199, 28200, 28201, 28202, 28203, 28204, 28205, 28206, 28207, 28208, 28209, 28210, 28211, 28212, 28213, 28214, 28215, 28216, 28217, 28218, 28219, 28220, 28221, 28222, 28223, 28224, 28225, 28226, 28227, 28228, 28229, 28230, 28231, 28232, 28233, 28234, 28235, 28236, 28237, 28238, 28239, 28240, 28241, 28242, 28243, 28244, 28245, 28246, 28247, 28248, 28249, 28250, 28251, 28252, 28253, 28254, 28255, 28256, 28257, 28258, 28259, 28260, 28261, 28262, 28263, 28264, 28265, 28266, 28267, 28268, 28269, 28270, 28271, 28272, 28273, 28274, 28275, 28276, 28277, 28278, 28279, 28280, 28281, 28282, 28283, 28284, 28285, 28286, 28287, 28288, 28289, 28290, 28291, 28292, 28293, 28294, 28295, 28296, 28297, 28298, 28299, 28300, 28301, 28302, 28303, 28304, 28305, 28306, 28307, 28308, 28309, 28310, 28311, 28312, 28313, 28314, 28315, 28316, 28317, 28318, 28319, 28320, 28321, 28322, 28323, 28324, 28325, 28326, 28327, 28328, 28329, 28330, 28331, 28332, 28333, 28334, 28335, 28336, 28337, 28338, 28339, 28340, 28341, 28342, 28343, 28344, 28345, 28346, 28347, 28348, 28349, 28350, 28351, 28352, 28353, 28354, 28355, 28356, 28357, 28358, 28359, 28360, 28361, 28362, 28363, 28364, 28365, 28366, 28367, 28368, 28369, 28370, 28371, 28372, 28373, 28374, 28375, 28376, 28377, 28378, 28379, 28380, 28381, 28382, 28383, 28384, 28385, 28386, 28387, 28388, 28389, 28390, 28391, 28392, 28393, 28394, 28395, 28396, 28397, 28398, 28399, 28400, 28401, 28402, 28403, 28404, 28405, 28406, 28407, 28408, 28409, 28410, 28411, 28412, 28413, 28414, 28415, 28416, 28417, 28418, 28419, 28420, 28421, 28422, 28423, 28424, 28425, 28426, 28427, 28428, 28429, 28430, 28431, 28432, 28433, 28434, 28435, 28436, 28437, 28438, 28439, 28440, 28441, 28442, 28443, 28444, 28445, 28446, 28447, 28448, 28449, 28450, 28451, 28452, 28453, 28454, 28455, 28456, 28457, 28458, 28459, 28460, 28461, 28462, 28463, 28464, 28465, 28466, 28467, 28468, 28469, 28470, 28471, 28472, 28473, 28474, 28475, 28476, 28477, 28478, 28479, 28480, 28481, 28482, 28483, 28484, 28485, 28486, 28487, 28488, 28489, 28490, 28491, 28492, 28493, 28494, 28495, 28496, 28497, 28498, 28499, 28500, 28501, 28502, 28503, 28504, 28505, 28506, 28507, 28508, 28509, 28510, 28511, 28512, 28513, 28514, 28515, 28516, 28517, 28518, 28519, 28520, 28521, 28522, 28523, 28524, 28525, 28526, 28527, 28528, 28529, 28530, 28531, 28532, 28533, 28534, 28535, 28536, 28537, 28538, 28539, 28540, 28541, 28542, 28543, 28544, 28545, 28546, 28547, 28548, 28549, 28550, 28551, 28552, 28553, 28554, 28555, 28556, 28557, 28558, 28559, 28560, 28561, 28562, 28563, 28564, 28565, 28566, 28567, 28568, 28569, 28570, 28571, 28572, 28573, 28574, 28575, 28576, 28577, 28578, 28579, 28580, 28581, 28582, 28583, 28584, 28585, 28586, 28587, 28588, 28589, 28590, 28591, 28592, 28593, 28594, 28595, 28596, 28597, 28598, 28599, 28600, 28601, 28602, 28603, 28604, 28605, 28606, 28607, 28608, 28609, 28610, 28611, 28612, 28613, 28614, 28615, 28616, 28617, 28618, 28619, 28620, 28621, 28622, 28623, 28624, 28625, 28626, 28627, 28628, 28629, 28630, 28631, 28632, 28633, 28634, 28635, 28636, 28637, 28638, 28639, 28640, 28641, 28642, 28643, 28644, 28645, 28646, 28647, 28648, 28649, 28650, 28651, 28652, 28653, 28654, 28655, 28656, 28657, 28658, 28659, 28660, 28661, 28662, 28663, 28664, 28665, 28666, 28667, 28668, 28669, 28670, 28671, 28672, 28673, 28674, 28675, 28676, 28677, 28678, 28679, 28680, 28681, 28682, 28683, 28684, 28685, 28686, 28687, 28688, 28689, 28690, 28691, 28692, 28693, 28694, 28695, 28696, 28697, 28698, 28699, 28700, 28701, 28702, 28703, 28704, 28705, 28706, 28707, 28708, 28709, 28710, 28711, 28712, 28713, 28714, 28715, 28716, 28717, 28718, 28719, 28720, 28721, 28722, 28723, 28724, 28725, 28726, 28727, 28728, 28729, 28730, 28731, 28732, 28733, 28734, 28735, 28736, 28737, 28738, 28739, 28740, 28741, 28742, 28743, 28744, 28745, 28746, 28747, 28748, 28749, 28750, 28751, 28752, 28753, 28754, 28755, 28756, 28757, 28758, 28759, 28760, 28761, 28762, 28763, 28764, 28765, 28766, 28767, 28768, 28769, 28770, 28771, 28772, 28773, 28774, 28775, 28776, 28777, 28778, 28779, 28780, 28781, 28782, 28783, 28784, 28785, 28786, 28787, 28788, 28789, 28790, 28791, 28792, 28793, 28794, 28795, 28796, 28797, 28798, 28799, 28800, 28801, 28802, 28803, 28804, 28805, 28806, 28807, 28808, 28809, 28810, 28811, 28812, 28813, 28814, 28815, 28816, 28817, 28818, 28819, 28820, 28821, 28822, 28823, 28824, 28825, 28826, 28827, 28828, 28829, 28830, 28831, 28832, 28833, 28834, 28835, 28836, 28837, 28838, 28839, 28840, 28841, 28842, 28843, 28844, 28845, 28846, 28847, 28848, 28849, 28850, 28851, 28852, 28853, 28854, 28855, 28856, 28857, 28858, 28859, 28860, 28861, 28862, 28863, 28864, 28865, 28866, 28867, 28868, 28869, 28870, 28871, 28872, 28873, 28874, 28875, 28876, 28877, 28878, 28879, 28880, 28881, 28882, 28883, 28884, 28885, 28886, 28887, 28888, 28889, 28890, 28891, 28892, 28893, 28894, 28895, 28896, 28897, 28898, 28899, 28900, 28901, 28902, 28903, 28904, 28905, 28906, 28907, 28908, 28909, 28910, 28911, 28912, 28913, 28914, 28915, 28916, 28917, 28918, 28919, 28920, 28921, 28922, 28923, 28924, 28925, 28926, 28927, 28928, 28929, 28930, 28931, 28932, 28933, 28934, 28935, 28936, 28937, 28938, 28939, 28940, 28941, 28942, 28943, 28944, 28945, 28946, 28947, 28948, 28949, 28950, 28951, 28952, 28953, 28954, 28955, 28956, 28957, 28958, 28959, 28960, 28961, 28962, 28963, 28964, 28965, 28966, 28967, 28968, 28969, 28970, 28971, 28972, 28973, 28974, 28975, 28976, 28977, 28978, 28979, 28980, 28981, 28982, 28983, 28984, 28985, 28986, 28987, 28988, 28989, 28990, 28991, 28992, 28993, 28994, 28995, 28996, 28997, 28998, 28999, 29000, 29001, 29002, 29003, 29004, 29005, 29006, 29007, 29008, 29009, 29010, 29011, 29012, 29013, 29014, 29015, 29016, 29017, 29018, 29019, 29020, 29021, 29022, 29023, 29024, 29025, 29026, 29027, 29028, 29029, 29030, 29031, 29032, 29033, 29034, 29035, 29036, 29037, 29038, 29039, 29040, 29041, 29042, 29043, 29044, 29045, 29046, 29047, 29048, 29049, 29050, 29051, 29052, 29053, 29054, 29055, 29056, 29057, 29058, 29059, 29060, 29061, 29062, 29063, 29064, 29065, 29066, 29067, 29068, 29069, 29070, 29071, 29072, 29073, 29074, 29075, 29076, 29077, 29078, 29079, 29080, 29081, 29082, 29083, 29084, 29085, 29086, 29087, 29088, 29089, 29090, 29091, 29092, 29093, 29094, 29095, 29096, 29097, 29098, 29099, 29100, 29101, 29102, 29103, 29104, 29105, 29106, 29107, 29108, 29109, 29110, 29111, 29112, 29113, 29114, 29115, 29116, 29117, 29118, 29119, 29120, 29121, 29122, 29123, 29124, 29125, 29126, 29127, 29128, 29129, 29130, 29131, 29132, 29133, 29134, 29135, 29136, 29137, 29138, 29139, 29140, 29141, 29142, 29143, 29144, 29145, 29146, 29147, 29148, 29149, 29150, 29151, 29152, 29153, 29154, 29155, 29156, 29157, 29158, 29159, 29160, 29161, 29162, 29163, 29164, 29165, 29166, 29167, 29168, 29169, 29170, 29171, 29172, 29173, 29174, 29175, 29176, 29177, 29178, 29179, 29180, 29181, 29182, 29183, 29184, 29185, 29186, 29187, 29188, 29189, 29190, 29191, 29192, 29193, 29194, 29195, 29196, 29197, 29198, 29199, 29200, 29201, 29202, 29203, 29204, 29205, 29206, 29207, 29208, 29209, 29210, 29211, 29212, 29213, 29214, 29215, 29216, 29217, 29218, 29219, 29220, 29221, 29222, 29223, 29224, 29225, 29226, 29227, 29228, 29229, 29230, 29231, 29232, 29233, 29234, 29235, 29236, 29237, 29238, 29239, 29240, 29241, 29242, 29243, 29244, 29245, 29246, 29247, 29248, 29249, 29250, 29251, 29252, 29253, 29254, 29255, 29256, 29257, 29258, 29259, 29260, 29261, 29262, 29263, 29264, 29265, 29266, 29267, 29268, 29269, 29270, 29271, 29272, 29273, 29274, 29275, 29276, 29277, 29278, 29279, 29280, 29281, 29282, 29283, 29284, 29285, 29286, 29287, 29288, 29289, 29290, 29291, 29292, 29293, 29294, 29295, 29296, 29297, 29298, 29299, 29300, 29301, 29302, 29303, 29304, 29305, 29306, 29307, 29308, 29309, 29310, 29311, 29312, 29313, 29314, 29315, 29316, 29317, 29318, 29319, 29320, 29321, 29322, 29323, 29324, 29325, 29326, 29327, 29328, 29329, 29330, 29331, 29332, 29333, 29334, 29335, 29336, 29337, 29338, 29339, 29340, 29341, 29342, 29343, 29344, 29345, 29346, 29347, 29348, 29349, 29350, 29351, 29352, 29353, 29354, 29355, 29356, 29357, 29358, 29359, 29360, 29361, 29362, 29363, 29364, 29365, 29366, 29367, 29368, 29369, 29370, 29371, 29372, 29373, 29374, 29375, 29376, 29377, 29378, 29379, 29380, 29381, 29382, 29383, 29384, 29385, 29386, 29387, 29388, 29389, 29390, 29391, 29392, 29393, 29394, 29395, 29396, 29397, 29398, 29399, 29400, 29401, 29402, 29403, 29404, 29405, 29406, 29407, 29408, 29409, 29410, 29411, 29412, 29413, 29414, 29415, 29416, 29417, 29418, 29419, 29420, 29421, 29422, 29423, 29424, 29425, 29426, 29427, 29428, 29429, 29430, 29431, 29432, 29433, 29434, 29435, 29436, 29437, 29438, 29439, 29440, 29441, 29442, 29443, 29444, 29445, 29446, 29447, 29448, 29449, 29450, 29451, 29452, 29453, 29454, 29455, 29456, 29457, 29458, 29459, 29460, 29461, 29462, 29463, 29464, 29465, 29466, 29467, 29468, 29469, 29470, 29471, 29472, 29473, 29474, 29475, 29476, 29477, 29478, 29479, 29480, 29481, 29482, 29483, 29484, 29485, 29486, 29487, 29488, 29489, 29490, 29491, 29492, 29493, 29494, 29495, 29496, 29497, 29498, 29499, 29500, 29501, 29502, 29503, 29504, 29505, 29506, 29507, 29508, 29509, 29510, 29511, 29512, 29513, 29514, 29515, 29516, 29517, 29518, 29519, 29520, 29521, 29522, 29523, 29524, 29525, 29526, 29527, 29528, 29529, 29530, 29531, 29532, 29533, 29534, 29535, 29536, 29537, 29538, 29539, 29540, 29541, 29542, 29543, 29544, 29545, 29546, 29547, 29548, 29549, 29550, 29551, 29552, 29553, 29554, 29555, 29556, 29557, 29558, 29559, 29560, 29561, 29562, 29563, 29564, 29565, 29566, 29567, 29568, 29569, 29570, 29571, 29572, 29573, 29574, 29575, 29576, 29577, 29578, 29579, 29580, 29581, 29582, 29583, 29584, 29585, 29586, 29587, 29588, 29589, 29590, 29591, 29592, 29593, 29594, 29595, 29596, 29597, 29598, 29599, 29600, 29601, 29602, 29603, 29604, 29605, 29606, 29607, 29608, 29609, 29610, 29611, 29612, 29613, 29614, 29615, 29616, 29617, 29618, 29619, 29620, 29621, 29622, 29623, 29624, 29625, 29626, 29627, 29628, 29629, 29630, 29631, 29632, 29633, 29634, 29635, 29636, 29637, 29638, 29639, 29640, 29641, 29642, 29643, 29644, 29645, 29646, 29647, 29648, 29649, 29650, 29651, 29652, 29653, 29654, 29655, 29656, 29657, 29658, 29659, 29660, 29661, 29662, 29663, 29664, 29665, 29666, 29667, 29668, 29669, 29670, 29671, 29672, 29673, 29674, 29675, 29676, 29677, 29678, 29679, 29680, 29681, 29682, 29683, 29684, 29685, 29686, 29687, 29688, 29689, 29690, 29691, 29692, 29693, 29694, 29695, 29696, 29697, 29698, 29699, 29700, 29701, 29702, 29703, 29704, 29705, 29706, 29707, 29708, 29709, 29710, 29711, 29712, 29713, 29714, 29715, 29716, 29717, 29718, 29719, 29720, 29721, 29722, 29723, 29724, 29725, 29726, 29727, 29728, 29729, 29730, 29731, 29732, 29733, 29734, 29735, 29736, 29737, 29738, 29739, 29740, 29741, 29742, 29743, 29744, 29745, 29746, 29747, 29748, 29749, 29750, 29751, 29752, 29753, 29754, 29755, 29756, 29757, 29758, 29759, 29760, 29761, 29762, 29763, 29764, 29765, 29766, 29767, 29768, 29769, 29770, 29771, 29772, 29773, 29774, 29775, 29776, 29777, 29778, 29779, 29780, 29781, 29782, 29783, 29784, 29785, 29786, 29787, 29788, 29789, 29790, 29791, 29792, 29793, 29794, 29795, 29796, 29797, 29798, 29799, 29800, 29801, 29802, 29803, 29804, 29805, 29806, 29807, 29808, 29809, 29810, 29811, 29812, 29813, 29814, 29815, 29816, 29817, 29818, 29819, 29820, 29821, 29822, 29823, 29824, 29825, 29826, 29827, 29828, 29829, 29830, 29831, 29832, 29833, 29834, 29835, 29836, 29837, 29838, 29839, 29840, 29841, 29842, 29843, 29844, 29845, 29846, 29847, 29848, 29849, 29850, 29851, 29852, 29853, 29854, 29855, 29856, 29857, 29858, 29859, 29860, 29861, 29862, 29863, 29864, 29865, 29866, 29867, 29868, 29869, 29870, 29871, 29872, 29873, 29874, 29875, 29876, 29877, 29878, 29879, 29880, 29881, 29882, 29883, 29884, 29885, 29886, 29887, 29888, 29889, 29890, 29891, 29892, 29893, 29894, 29895, 29896, 29897, 29898, 29899, 29900, 29901, 29902, 29903, 29904, 29905, 29906, 29907, 29908, 29909, 29910, 29911, 29912, 29913, 29914, 29915, 29916, 29917, 29918, 29919, 29920, 29921, 29922, 29923, 29924, 29925, 29926, 29927, 29928, 29929, 29930, 29931, 29932, 29933, 29934, 29935, 29936, 29937, 29938, 29939, 29940, 29941, 29942, 29943, 29944, 29945, 29946, 29947, 29948, 29949, 29950, 29951, 29952, 29953, 29954, 29955, 29956, 29957, 29958, 29959, 29960, 29961, 29962, 29963, 29964, 29965, 29966, 29967, 29968, 29969, 29970, 29971, 29972, 29973, 29974, 29975, 29976, 29977, 29978, 29979, 29980, 29981, 29982, 29983, 29984, 29985, 29986, 29987, 29988, 29989, 29990, 29991, 29992, 29993, 29994, 29995, 29996, 29997, 29998, 29999, 30000, 30001, 30002, 30003, 30004, 30005, 30006, 30007, 30008, 30009, 30010, 30011, 30012, 30013, 30014, 30015, 30016, 30017, 30018, 30019, 30020, 30021, 30022, 30023, 30024, 30025, 30026, 30027, 30028, 30029, 30030, 30031, 30032, 30033, 30034, 30035, 30036, 30037, 30038, 30039, 30040, 30041, 30042, 30043, 30044, 30045, 30046, 30047, 30048, 30049, 30050, 30051, 30052, 30053, 30054, 30055, 30056, 30057, 30058, 30059, 30060, 30061, 30062, 30063, 30064, 30065, 30066, 30067, 30068, 30069, 30070, 30071, 30072, 30073, 30074, 30075, 30076, 30077, 30078, 30079, 30080, 30081, 30082, 30083, 30084, 30085, 30086, 30087, 30088, 30089, 30090, 30091, 30092, 30093, 30094, 30095, 30096, 30097, 30098, 30099, 30100, 30101, 30102, 30103, 30104, 30105, 30106, 30107, 30108, 30109, 30110, 30111, 30112, 30113, 30114, 30115, 30116, 30117, 30118, 30119, 30120, 30121, 30122, 30123, 30124, 30125, 30126, 30127, 30128, 30129, 30130, 30131, 30132, 30133, 30134, 30135, 30136, 30137, 30138, 30139, 30140, 30141, 30142, 30143, 30144, 30145, 30146, 30147, 30148, 30149, 30150, 30151, 30152, 30153, 30154, 30155, 30156, 30157, 30158, 30159, 30160, 30161, 30162, 30163, 30164, 30165, 30166, 30167, 30168, 30169, 30170, 30171, 30172, 30173, 30174, 30175, 30176, 30177, 30178, 30179, 30180, 30181, 30182, 30183, 30184, 30185, 30186, 30187, 30188, 30189, 30190, 30191, 30192, 30193, 30194, 30195, 30196, 30197, 30198, 30199, 30200, 30201, 30202, 30203, 30204, 30205, 30206, 30207, 30208, 30209, 30210, 30211, 30212, 30213, 30214, 30215, 30216, 30217, 30218, 30219, 30220, 30221, 30222, 30223, 30224, 30225, 30226, 30227, 30228, 30229, 30230, 30231, 30232, 30233, 30234, 30235, 30236, 30237, 30238, 30239, 30240, 30241, 30242, 30243, 30244, 30245, 30246, 30247, 30248, 30249, 30250, 30251, 30252, 30253, 30254, 30255, 30256, 30257, 30258, 30259, 30260, 30261, 30262, 30263, 30264, 30265, 30266, 30267, 30268, 30269, 30270, 30271, 30272, 30273, 30274, 30275, 30276, 30277, 30278, 30279, 30280, 30281, 30282, 30283, 30284, 30285, 30286, 30287, 30288, 30289, 30290, 30291, 30292, 30293, 30294, 30295, 30296, 30297, 30298, 30299, 30300, 30301, 30302, 30303, 30304, 30305, 30306, 30307, 30308, 30309, 30310, 30311, 30312, 30313, 30314, 30315, 30316, 30317, 30318, 30319, 30320, 30321, 30322, 30323, 30324, 30325, 30326, 30327, 30328, 30329, 30330, 30331, 30332, 30333, 30334, 30335, 30336, 30337, 30338, 30339, 30340, 30341, 30342, 30343, 30344, 30345, 30346, 30347, 30348, 30349, 30350, 30351, 30352, 30353, 30354, 30355, 30356, 30357, 30358, 30359, 30360, 30361, 30362, 30363, 30364, 30365, 30366, 30367, 30368, 30369, 30370, 30371, 30372, 30373, 30374, 30375, 30376, 30377, 30378, 30379, 30380, 30381, 30382, 30383, 30384, 30385, 30386, 30387, 30388, 30389, 30390, 30391, 30392, 30393, 30394, 30395, 30396, 30397, 30398, 30399, 30400, 30401, 30402, 30403, 30404, 30405, 30406, 30407, 30408, 30409, 30410, 30411, 30412, 30413, 30414, 30415, 30416, 30417, 30418, 30419, 30420, 30421, 30422, 30423, 30424, 30425, 30426, 30427, 30428, 30429, 30430, 30431, 30432, 30433, 30434, 30435, 30436, 30437, 30438, 30439, 30440, 30441, 30442, 30443, 30444, 30445, 30446, 30447, 30448, 30449, 30450, 30451, 30452, 30453, 30454, 30455, 30456, 30457, 30458, 30459, 30460, 30461, 30462, 30463, 30464, 30465, 30466, 30467, 30468, 30469, 30470, 30471, 30472, 30473, 30474, 30475, 30476, 30477, 30478, 30479, 30480, 30481, 30482, 30483, 30484, 30485, 30486, 30487, 30488, 30489, 30490, 30491, 30492, 30493, 30494, 30495, 30496, 30497, 30498, 30499, 30500, 30501, 30502, 30503, 30504, 30505, 30506, 30507, 30508, 30509, 30510, 30511, 30512, 30513, 30514, 30515, 30516, 30517, 30518, 30519, 30520, 30521, 30522, 30523, 30524, 30525, 30526, 30527, 30528, 30529, 30530, 30531, 30532, 30533, 30534, 30535, 30536, 30537, 30538, 30539, 30540, 30541, 30542, 30543, 30544, 30545, 30546, 30547, 30548, 30549, 30550, 30551, 30552, 30553, 30554, 30555, 30556, 30557, 30558, 30559, 30560, 30561, 30562, 30563, 30564, 30565, 30566, 30567, 30568, 30569, 30570, 30571, 30572, 30573, 30574, 30575, 30576, 30577, 30578, 30579, 30580, 30581, 30582, 30583, 30584, 30585, 30586, 30587, 30588, 30589, 30590, 30591, 30592, 30593, 30594, 30595, 30596, 30597, 30598, 30599, 30600, 30601, 30602, 30603, 30604, 30605, 30606, 30607, 30608, 30609, 30610, 30611, 30612, 30613, 30614, 30615, 30616, 30617, 30618, 30619, 30620, 30621, 30622, 30623, 30624, 30625, 30626, 30627, 30628, 30629, 30630, 30631, 30632, 30633, 30634, 30635, 30636, 30637, 30638, 30639, 30640, 30641, 30642, 30643, 30644, 30645, 30646, 30647, 30648, 30649, 30650, 30651, 30652, 30653, 30654, 30655, 30656, 30657, 30658, 30659, 30660, 30661, 30662, 30663, 30664, 30665, 30666, 30667, 30668, 30669, 30670, 30671, 30672, 30673, 30674, 30675, 30676, 30677, 30678, 30679, 30680, 30681, 30682, 30683, 30684, 30685, 30686, 30687, 30688, 30689, 30690, 30691, 30692, 30693, 30694, 30695, 30696, 30697, 30698, 30699, 30700, 30701, 30702, 30703, 30704, 30705, 30706, 30707, 30708, 30709, 30710, 30711, 30712, 30713, 30714, 30715, 30716, 30717, 30718, 30719, 30720, 30721, 30722, 30723, 30724, 30725, 30726, 30727, 30728, 30729, 30730, 30731, 30732, 30733, 30734, 30735, 30736, 30737, 30738, 30739, 30740, 30741, 30742, 30743, 30744, 30745, 30746, 30747, 30748, 30749, 30750, 30751, 30752, 30753, 30754, 30755, 30756, 30757, 30758, 30759, 30760, 30761, 30762, 30763, 30764, 30765, 30766, 30767, 30768, 30769, 30770, 30771, 30772, 30773, 30774, 30775, 30776, 30777, 30778, 30779, 30780, 30781, 30782, 30783, 30784, 30785, 30786, 30787, 30788, 30789, 30790, 30791, 30792, 30793, 30794, 30795, 30796, 30797, 30798, 30799, 30800, 30801, 30802, 30803, 30804, 30805, 30806, 30807, 30808, 30809, 30810, 30811, 30812, 30813, 30814, 30815, 30816, 30817, 30818, 30819, 30820, 30821, 30822, 30823, 30824, 30825, 30826, 30827, 30828, 30829, 30830, 30831, 30832, 30833, 30834, 30835, 30836, 30837, 30838, 30839, 30840, 30841, 30842, 30843, 30844, 30845, 30846, 30847, 30848, 30849, 30850, 30851, 30852, 30853, 30854, 30855, 30856, 30857, 30858, 30859, 30860, 30861, 30862, 30863, 30864, 30865, 30866, 30867, 30868, 30869, 30870, 30871, 30872, 30873, 30874, 30875, 30876, 30877, 30878, 30879, 30880, 30881, 30882, 30883, 30884, 30885, 30886, 30887, 30888, 30889, 30890, 30891, 30892, 30893, 30894, 30895, 30896, 30897, 30898, 30899, 30900, 30901, 30902, 30903, 30904, 30905, 30906, 30907, 30908, 30909, 30910, 30911, 30912, 30913, 30914, 30915, 30916, 30917, 30918, 30919, 30920, 30921, 30922, 30923, 30924, 30925, 30926, 30927, 30928, 30929, 30930, 30931, 30932, 30933, 30934, 30935, 30936, 30937, 30938, 30939, 30940, 30941, 30942, 30943, 30944, 30945, 30946, 30947, 30948, 30949, 30950, 30951, 30952, 30953, 30954, 30955, 30956, 30957, 30958, 30959, 30960, 30961, 30962, 30963, 30964, 30965, 30966, 30967, 30968, 30969, 30970, 30971, 30972, 30973, 30974, 30975, 30976, 30977, 30978, 30979, 30980, 30981, 30982, 30983, 30984, 30985, 30986, 30987, 30988, 30989, 30990, 30991, 30992, 30993, 30994, 30995, 30996, 30997, 30998, 30999, 31000, 31001, 31002, 31003, 31004, 31005, 31006, 31007, 31008, 31009, 31010, 31011, 31012, 31013, 31014, 31015, 31016, 31017, 31018, 31019, 31020, 31021, 31022, 31023, 31024, 31025, 31026, 31027, 31028, 31029, 31030, 31031, 31032, 31033, 31034, 31035, 31036, 31037, 31038, 31039, 31040, 31041, 31042, 31043, 31044, 31045, 31046, 31047, 31048, 31049, 31050, 31051, 31052, 31053, 31054, 31055, 31056, 31057, 31058, 31059, 31060, 31061, 31062, 31063, 31064, 31065, 31066, 31067, 31068, 31069, 31070, 31071, 31072, 31073, 31074, 31075, 31076, 31077, 31078, 31079, 31080, 31081, 31082, 31083, 31084, 31085, 31086, 31087, 31088, 31089, 31090, 31091, 31092, 31093, 31094, 31095, 31096, 31097, 31098, 31099, 31100, 31101, 31102, 31103, 31104, 31105, 31106, 31107, 31108, 31109, 31110, 31111, 31112, 31113, 31114, 31115, 31116, 31117, 31118, 31119, 31120, 31121, 31122, 31123, 31124, 31125, 31126, 31127, 31128, 31129, 31130, 31131, 31132, 31133, 31134, 31135, 31136, 31137, 31138, 31139, 31140, 31141, 31142, 31143, 31144, 31145, 31146, 31147, 31148, 31149, 31150, 31151, 31152, 31153, 31154, 31155, 31156, 31157, 31158, 31159, 31160, 31161, 31162, 31163, 31164, 31165, 31166, 31167, 31168, 31169, 31170, 31171, 31172, 31173, 31174, 31175, 31176, 31177, 31178, 31179, 31180, 31181, 31182, 31183, 31184, 31185, 31186, 31187, 31188, 31189, 31190, 31191, 31192, 31193, 31194, 31195, 31196, 31197, 31198, 31199, 31200, 31201, 31202, 31203, 31204, 31205, 31206, 31207, 31208, 31209, 31210, 31211, 31212, 31213, 31214, 31215, 31216, 31217, 31218, 31219, 31220, 31221, 31222, 31223, 31224, 31225, 31226, 31227, 31228, 31229, 31230, 31231, 31232, 31233, 31234, 31235, 31236, 31237, 31238, 31239, 31240, 31241, 31242, 31243, 31244, 31245, 31246, 31247, 31248, 31249, 31250, 31251, 31252, 31253, 31254, 31255, 31256, 31257, 31258, 31259, 31260, 31261, 31262, 31263, 31264, 31265, 31266, 31267, 31268, 31269, 31270, 31271, 31272, 31273, 31274, 31275, 31276, 31277, 31278, 31279, 31280, 31281, 31282, 31283, 31284, 31285, 31286, 31287, 31288, 31289, 31290, 31291, 31292, 31293, 31294, 31295, 31296, 31297, 31298, 31299, 31300, 31301, 31302, 31303, 31304, 31305, 31306, 31307, 31308, 31309, 31310, 31311, 31312, 31313, 31314, 31315, 31316, 31317, 31318, 31319, 31320, 31321, 31322, 31323, 31324, 31325, 31326, 31327, 31328, 31329, 31330, 31331, 31332, 31333, 31334, 31335, 31336, 31337, 31338, 31339, 31340, 31341, 31342, 31343, 31344, 31345, 31346, 31347, 31348, 31349, 31350, 31351, 31352, 31353, 31354, 31355, 31356, 31357, 31358, 31359, 31360, 31361, 31362, 31363, 31364, 31365, 31366, 31367, 31368, 31369, 31370, 31371, 31372, 31373, 31374, 31375, 31376, 31377, 31378, 31379, 31380, 31381, 31382, 31383, 31384, 31385, 31386, 31387, 31388, 31389, 31390, 31391, 31392, 31393, 31394, 31395, 31396, 31397, 31398, 31399, 31400, 31401, 31402, 31403, 31404, 31405, 31406, 31407, 31408, 31409, 31410, 31411, 31412, 31413, 31414, 31415, 31416, 31417, 31418, 31419, 31420, 31421, 31422, 31423, 31424, 31425, 31426, 31427, 31428, 31429, 31430, 31431, 31432, 31433, 31434, 31435, 31436, 31437, 31438, 31439, 31440, 31441, 31442, 31443, 31444, 31445, 31446, 31447, 31448, 31449, 31450, 31451, 31452, 31453, 31454, 31455, 31456, 31457, 31458, 31459, 31460, 31461, 31462, 31463, 31464, 31465, 31466, 31467, 31468, 31469, 31470, 31471, 31472, 31473, 31474, 31475, 31476, 31477, 31478, 31479, 31480, 31481, 31482, 31483, 31484, 31485, 31486, 31487, 31488, 31489, 31490, 31491, 31492, 31493, 31494, 31495, 31496, 31497, 31498, 31499, 31500, 31501, 31502, 31503, 31504, 31505, 31506, 31507, 31508, 31509, 31510, 31511, 31512, 31513, 31514, 31515, 31516, 31517, 31518, 31519, 31520, 31521, 31522, 31523, 31524, 31525, 31526, 31527, 31528, 31529, 31530, 31531, 31532, 31533, 31534, 31535, 31536, 31537, 31538, 31539, 31540, 31541, 31542, 31543, 31544, 31545, 31546, 31547, 31548, 31549, 31550, 31551, 31552, 31553, 31554, 31555, 31556, 31557, 31558, 31559, 31560, 31561, 31562, 31563, 31564, 31565, 31566, 31567, 31568, 31569, 31570, 31571, 31572, 31573, 31574, 31575, 31576, 31577, 31578, 31579, 31580, 31581, 31582, 31583, 31584, 31585, 31586, 31587, 31588, 31589, 31590, 31591, 31592, 31593, 31594, 31595, 31596, 31597, 31598, 31599, 31600, 31601, 31602, 31603, 31604, 31605, 31606, 31607, 31608, 31609, 31610, 31611, 31612, 31613, 31614, 31615, 31616, 31617, 31618, 31619, 31620, 31621, 31622, 31623, 31624, 31625, 31626, 31627, 31628, 31629, 31630, 31631, 31632, 31633, 31634, 31635, 31636, 31637, 31638, 31639, 31640, 31641, 31642, 31643, 31644, 31645, 31646, 31647, 31648, 31649, 31650, 31651, 31652, 31653, 31654, 31655, 31656, 31657, 31658, 31659, 31660, 31661, 31662, 31663, 31664, 31665, 31666, 31667, 31668, 31669, 31670, 31671, 31672, 31673, 31674, 31675, 31676, 31677, 31678, 31679, 31680, 31681, 31682, 31683, 31684, 31685, 31686, 31687, 31688, 31689, 31690, 31691, 31692, 31693, 31694, 31695, 31696, 31697, 31698, 31699, 31700, 31701, 31702, 31703, 31704, 31705, 31706, 31707, 31708, 31709, 31710, 31711, 31712, 31713, 31714, 31715, 31716, 31717, 31718, 31719, 31720, 31721, 31722, 31723, 31724, 31725, 31726, 31727, 31728, 31729, 31730, 31731, 31732, 31733, 31734, 31735, 31736, 31737, 31738, 31739, 31740, 31741, 31742, 31743] + EmptyAttributes: + GlobalAttributes:["HTTP_LINK","Generation_date","LINK_TITLE","Acknowledgement","Rules_of_use","Generated_by","Time_resolution","LINK_TEXT"] + VariableAttributes:["LABL_PTR_1"] diff --git a/cdf38_1-dist/cdfjava/cdfjson/wi.txt b/cdf38_1-dist/cdfjava/cdfjson/wi.txt new file mode 100644 index 0000000..d8d64d2 --- /dev/null +++ b/cdf38_1-dist/cdfjava/cdfjson/wi.txt @@ -0,0 +1,1847 @@ +wi_h0_mfi_00000000_v01.cdf: + CDFFileInfo: + FileVersion:3.8.0 + Format:SINGLE + Majority:COLUMN + Encoding:NETWORK + CDFglobalAttributes: + Project: + 0:"ISTP>International Solar-Terrestrial Physics" + Discipline: + 0:"Space Physics>Heliospheric Science" + Source_name: + 0:"WIND>Wind Interplanetary Plasma Laboratory" + Software_version: + 0:" " + Data_type: + 0:"H0>3 sec, 1 min, and hourly Definitive Data" + Descriptor: + 0:"MFI>Magnetic Fields Investigation" + Data_version: + 0:" " + TITLE: + 0:"WIND Magnetic Field Investigation (MFI) Standard Production" + TEXT: + 0:"WIND MFI Composite data file. This file contains multiple time resolution data." + 1:"1 Minute data averages " + 2:"3 Second data averages " + 3:"1 Hour data averages " + 4:"WIND MFI Instrument turn on 11/12/1994 " + 5:"Data versions: " + 6:"03 - Extrapolated Bz correction " + 7:"04 - Final Bz correction " + 8:"05 - Final orbit and Bz correction " + 9:"References: " + 10:"1. Lepping, R. P., et al., The WIND Magnetic Field Investigation, p. 207 in " + 11:"The Global Geospace Mission, ed. by C. T. Russell, Kluwer,1995 " + 12:"2. Panetta, P. (GSFC), GGS WIND MFI Operator's Manual, September 15, 1992. " + 13:"3. Computer Sciences Corporation, Data Format Control Document (DFCD) Between " + 14:"The International Solar-Terrestrial Physics (ISTP) Program Information " + 15:"Processing Division Ground Data Processing System and The ISTP Mission " + 16:"Investigators, CSC/TR-91/6014, 560-1DFD/0190, July 1992. " + 17:"4. Behannon, K. W., International Solar Terrestrial Physics (ISTP) Program " + 18:"Investigator Data Analysis Requirements For WIND and GEOTAIL Spacecraft " + 19:"Magnetometer Experiment, September 1987. " + 20:"5. National Space Science Data Center, CDF User's Guide, Version 2.3.0, " + 21:"October 1, 1992. " + 22:"6. Mish, W. H., International Solar-Terrestrial Physics (ISTP) Key Parameter " + 23:"Generation Software (KPGS) Standards & Conventions, September 1992. " + 24:"7. Mish, W. H., IMP F and G Phase I Magnetic Field Analysis, April 1972 " + MODS: + 0:" " + ADID_ref: + 0:"NSSD0141" + Logical_file_id: + 0:"wi_h0_mfi_00000000_v00" + Logical_source: + 0:"wi_h0_mfi" + Logical_source_description: + 0:"Wind Magnetic Fields Investigation: 3 sec, 1 min, and hourly Definitive Data." + Processing_date: + 0:" " + Level_0_file: + 0:" " + HKlvl_0_file: + 0:" " + Orbit_file: + 0:" " + Attitude_file: + 0:" " + def_FLAGS: + 0:"00 - Interpolated Calibration Values " + 1:"01 - Last available Calibration Values " + 2:"02 - Daily Computed Calibration Values " + 3:"03 - Daily Computed Calibration Values with Bz corrections " + 4:"04 - High-Resolution Calibration Values " + 5:"05 - High-Resolution Calibration Values with Bz corrections" + def_SPC_MODE: + 0:"01 - Science mode (92 sec)" + 1:"03 - Maneuver mode (92 sec)" + 2:"04 - Contingency mode (92 sec)" + 3:"05 - Science mode (46 sec)" + 4:"07 - Maneuver mode (46 sec)" + 5:"08 - Contingency mode (46 sec)" + def_MAG_MODE: + 0:"00 - Primary to Secondary Ratio (1:1) Outboard prime w/ FFT & Snapshot" + 1:"01 - Primary to Secondary Ratio (20:1) Outboard prime w/ FFT & Snapshot" + 2:"02 - Primary to Secondary Ratio (20:1) Outboard prime w/ Snapshot only " + 3:"03 - Primary to Secondary Ratio (1:1) Outboard prime Maneuver " + 4:"07 - Primary to Secondary Ratio (1:1) Outboard prime used Inboard data" + 5:"10 - Primary to Secondary Ratio (1:1) Inboard prime w/ FFT & Snapshot" + 6:"11 - Primary to Secondary Ratio (20:1) Inboard prime w/ FFT & Snapshot" + 7:"12 - Primary to Secondary Ratio (20:1) Inboard prime w/ Snapshot only " + 8:"13 - Primary to Secondary Ratio (1:1) Inboard prime Maneuver " + PI_name: + 0:"A. Koval" + PI_affiliation: + 0:"UMBC, NASA/GSFC" + Instrument_type: + 0:"Magnetic Fields (space)" + TEXT_supplement_1: + 0:" " + LINK_TEXT: + 0:"Wind " + 1:"MFI Versions and Processing: " + LINK_TITLE: + 0:"Home Page " + 1:"Latest (Oct. 2011) Notes and Warnings " + HTTP_LINK: + 0:"http://wind.nasa.gov" + 1:"http://wind.nasa.gov/mfi/notes.html" + alt_logical_source: + 0:"Wind_MFI_Magnetic-Fields-H0_3sec-1min-1hour_cdf" + Mission_group: + 0:"Wind" + 1:"!___Interplanetary Data near 1 AU" + Web_sites: + 0:"http://wind.nasa.gov" + spase_DatasetResourceID: + 0:"spase://NASA/NumericalData/Wind/MFI/PT03S" + CDFVariables: + Epoch: + VarDescription: + DataType:"CDF_EPOCH" + NumElements:1 + NumDims:0 + RecVariance:"VARY" + PadValue:"0000-01-01T00:00:00.000" + VarAttributes: + FIELDNAM:"Time Line (1 min)" + VALIDMIN:"1994-11-11T19:06:40.000" + VALIDMAX:"2030-12-30T17:06:40.000" + UNITS:"ms" + LABLAXIS:"Epoch" + FORMAT:"E14.8" + MONOTON:"INCREASE" + SCALETYP:"LINEAR" + CATDESC:"Time, Centered, Number of milliseconds since the epoch (1 min)" + FILLVAL:"9999-12-31T23:59:59.999" + VAR_TYPE:"support_data" + TIME_RES:"1 min" + Time_PB5: + VarDescription: + DataType:"CDF_INT4" + NumElements:1 + NumDims:1 + DimSizes:[3] + RecVariance:"VARY" + DimVariances:["VARY"] + PadValue:-2147483647 + VarAttributes: + FIELDNAM:"Time Line (1 min)" + VALIDMIN:[1994,316,0] + VALIDMAX:[2030,365,0] + MONOTON:"INCREASE" + SCALETYP:"LINEAR" + CATDESC:"Time of observation in Year, Day, & milliseconds (1 min)" + FILLVAL:-1 + LABL_PTR_1:"label_time" + UNIT_PTR:"unit_time" + FORM_PTR:"format_time" + DEPEND_0:"Epoch" + DEPEND_1:"unit_time" + VAR_TYPE:"support_data" + TIME_RES:"1 min" + NUM_PTS: + VarDescription: + DataType:"CDF_INT4" + NumElements:1 + NumDims:0 + RecVariance:"VARY" + PadValue:-2147483647 + VarAttributes: + FIELDNAM:"Number of points in average (1 min)" + VALIDMIN:0 + VALIDMAX:1500 + UNITS:" " + LABLAXIS:"No. Points" + FORMAT:"I4" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"Number of points in average (1 min)" + FILLVAL:-1 + DEPEND_0:"Epoch" + VAR_TYPE:"support_data" + TIME_RES:"1 min" + BF1: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:0 + RecVariance:"VARY" + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Magnetic field magnitude (1 min)" + VALIDMIN:0.0 + VALIDMAX:65534.0 + UNITS:"nT (1min)" + LABLAXIS:"B" + FORMAT:"E13.6" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"Magnetic field magnitude (1 min)" + FILLVAL:-1.0E+31 + DEPEND_0:"Epoch" + VAR_TYPE:"data" + TIME_RES:"1 min" + VAR_NOTES:"Average of the magnitudes (F1)" + BF1LOG: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:0 + RecVariance:"VARY" + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Magnetic field magnitude (1 min)" + VALIDMIN:0.0 + VALIDMAX:65534.0 + UNITS:"nT (1min)" + LABLAXIS:"B" + FORMAT:"E13.6" + MONOTON:"FALSE" + SCALETYP:"log" + CATDESC:"Magnetic field magnitude (1 min - log scaled)" + FILLVAL:-1.0E+31 + DEPEND_0:"Epoch" + FUNCTION:"alternate_view" + COMPONENT_0:"BF1" + VIRTUAL:"TRUE" + VAR_TYPE:"data" + TIME_RES:"1 min" + VAR_NOTES:"Average of the magnitudes (F1)" + BRMSF1: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:0 + RecVariance:"VARY" + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"RMS magnitude (1 min)" + VALIDMIN:0.0 + VALIDMAX:65534.0 + UNITS:"nT (1min)" + LABLAXIS:"B_RMS" + FORMAT:"E13.6" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"RMS magnitude (1 min)" + FILLVAL:-1.0E+31 + DEPEND_0:"Epoch" + VAR_TYPE:"data" + TIME_RES:"1 min" + VAR_NOTES:"RMS of the magnitudes (F1 RMS)" + BGSM: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:1 + DimSizes:[3] + RecVariance:"VARY" + DimVariances:["VARY"] + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Magnetic field vector in GSM cartesian coordinates (1 min)" + VALIDMIN:[-65534.0,-65534.0,-65534.0] + VALIDMAX:[65534.0,65534.0,65534.0] + UNITS:"nT (1min)" + FORMAT:"E13.6" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"Magnetic field vector in GSM cartesian coordinates (1 min)" + FILLVAL:-1.0E+31 + LABL_PTR_1:"label_bgsm" + DEPEND_0:"Epoch" + DEPEND_1:"cartesian" + VAR_TYPE:"data" + TIME_RES:"1 min" + BRMSGSM: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:1 + DimSizes:[3] + RecVariance:"VARY" + DimVariances:["VARY"] + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"RMS vector in GSM coordinates (1 min)" + VALIDMIN:[0.0,0.0,0.0] + VALIDMAX:[65534.0,65534.0,65534.0] + UNITS:"nT (1min)" + FORMAT:"E13.6" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"RMS vector in GSM coordinates (1 min)" + FILLVAL:-1.0E+31 + LABL_PTR_1:"label_bgsmr" + DEPEND_0:"Epoch" + DEPEND_1:"cartesian" + VAR_TYPE:"data" + TIME_RES:"1 min" + BGSE: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:1 + DimSizes:[3] + RecVariance:"VARY" + DimVariances:["VARY"] + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Magnetic field vector in GSE cartesian coordinates (1 min)" + VALIDMIN:[-65534.0,-65534.0,-65534.0] + VALIDMAX:[65534.0,65534.0,65534.0] + UNITS:"nT (1min)" + FORMAT:"E13.6" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"Magnetic field vector in GSE cartesian coordinates (1 min)" + FILLVAL:-1.0E+31 + LABL_PTR_1:"label_bgse" + DEPEND_0:"Epoch" + DEPEND_1:"cartesian" + VAR_TYPE:"data" + TIME_RES:"1 min" + BGSEa: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:1 + DimSizes:[3] + RecVariance:"VARY" + DimVariances:["VARY"] + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Magnetic field vector in angular GSE coordinates (1 min)" + VALIDMIN:[-65534.0,-90.0,0.0] + VALIDMAX:[65534.0,90.0,360.0] + FORMAT:"E13.6" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"Magnetic field vector in GSE angular coordinates (1 min)" + FILLVAL:-1.0E+31 + LABL_PTR_1:"label_bgse_ang" + UNIT_PTR:"units_bgse__ang" + DEPEND_0:"Epoch" + DEPEND_1:"angle" + FUNCTION:"conv_pos1" + COMPONENT_0:"BGSE" + VIRTUAL:"TRUE" + DISPLAY_TYPE:"time_series" + VAR_TYPE:"data" + TIME_RES:"1 min" + BRMSGSE: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:1 + DimSizes:[3] + RecVariance:"VARY" + DimVariances:["VARY"] + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"RMS vector in GSE coordinates (1 min)" + VALIDMIN:[0.0,0.0,0.0] + VALIDMAX:[65534.0,65534.0,65534.0] + UNITS:"nT (1min)" + FORMAT:"E13.6" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"RMS vector in GSE coordinates (1 min)" + FILLVAL:-1.0E+31 + LABL_PTR_1:"label_bgser" + DEPEND_0:"Epoch" + DEPEND_1:"cartesian" + VAR_TYPE:"data" + TIME_RES:"1 min" + DIST: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:0 + RecVariance:"VARY" + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Radial Distance (1 min)" + VALIDMIN:0.0 + VALIDMAX:300.0 + UNITS:"Re (1min)" + LABLAXIS:"Rad. Dist." + FORMAT:"E13.6" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"Distance from the center of the earth (Define Re = 6378km) (1 min)" + FILLVAL:-1.0E+31 + DEPEND_0:"Epoch" + VAR_TYPE:"data" + TIME_RES:"1 min" + PGSM: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:1 + DimSizes:[3] + RecVariance:"VARY" + DimVariances:["VARY"] + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Position in GSM coordinates (1 min)" + VALIDMIN:[-300.0,-300.0,-300.0] + VALIDMAX:[300.0,300.0,300.0] + UNITS:"Re (1min)" + FORMAT:"E13.6" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"Position vector in GSM coordinates (Define Re = 6378km) (1 min)" + FILLVAL:-1.0E+31 + LABL_PTR_1:"label_pgsm" + DEPEND_0:"Epoch" + DEPEND_1:"cartesian" + VAR_TYPE:"data" + TIME_RES:"1 min" + PGSE: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:1 + DimSizes:[3] + RecVariance:"VARY" + DimVariances:["VARY"] + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Position in GSE coordinates (1 min)" + VALIDMIN:[-300.0,-300.0,-300.0] + VALIDMAX:[300.0,300.0,300.0] + UNITS:"Re (1min)" + FORMAT:"E13.6" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"Position vector in GSE coordinates (Define Re = 6378km) (1 min)" + FILLVAL:-1.0E+31 + LABL_PTR_1:"label_pgse" + DEPEND_0:"Epoch" + DEPEND_1:"cartesian" + VAR_TYPE:"data" + TIME_RES:"1 min" + SGSM: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:1 + DimSizes:[3] + RecVariance:"VARY" + DimVariances:["VARY"] + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Unit spin vector in GSM coordinates (1 min)" + VALIDMIN:[-1.0,-1.0,-1.0] + VALIDMAX:[1.0,1.0,1.0] + UNITS:" " + LABLAXIS:"Unit Vector" + FORMAT:"E13.6" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"Unit spin vector in GSM coordinates (1 min)" + FILLVAL:-1.0E+31 + DEPEND_0:"Epoch" + VAR_TYPE:"metadata" + TIME_RES:"1 min" + SGSE: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:1 + DimSizes:[3] + RecVariance:"VARY" + DimVariances:["VARY"] + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Unit spin vector in GSE coordinates (1 min)" + VALIDMIN:[-1.0,-1.0,-1.0] + VALIDMAX:[1.0,1.0,1.0] + UNITS:" " + LABLAXIS:"Unit Vector" + FORMAT:"E13.6" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"Unit spin vector in GSE coordinates (1 min)" + FILLVAL:-1.0E+31 + DEPEND_0:"Epoch" + DEPEND_1:"cartesian" + VAR_TYPE:"support_data" + TIME_RES:"1 min" + DB_SC: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:1 + DimSizes:[3] + RecVariance:"VARY" + DimVariances:["VARY"] + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Delta B (Outer - Inner) (1 min)" + VALIDMIN:-25.0 + VALIDMAX:25.0 + UNITS:"nT" + FORMAT:"E13.6" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"Delta B (Outer - Inner) (1 min)" + FILLVAL:-1.0E+31 + LABL_PTR_1:"label_dbsc" + DEPEND_0:"Epoch" + DEPEND_1:"cartesian" + VAR_TYPE:"support_data" + TIME_RES:"1 min" + TILTANG: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:0 + RecVariance:"VARY" + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Dipole Tilt Angle (Degrees) (1 min)" + VALIDMIN:-35.0 + VALIDMAX:35.0 + UNITS:"Degrees" + LABLAXIS:"Dipole Tilt" + FORMAT:"E13.6" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"Dipole Tilt Angle (Degrees)" + FILLVAL:-1.0E+31 + DEPEND_0:"Epoch" + VAR_TYPE:"support_data" + TIME_RES:"1 min" + RANGE_I: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:0 + RecVariance:"VARY" + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Average Range Inner Magnetometer (1 min)" + VALIDMIN:0.0 + VALIDMAX:7.0 + UNITS:" " + LABLAXIS:"Range Inner" + FORMAT:"F4.2" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"Average Range Inner Magnetometer (1 min)" + FILLVAL:-1.0E+31 + DEPEND_0:"Epoch" + VAR_TYPE:"support_data" + TIME_RES:"1 min" + RANGE_O: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:0 + RecVariance:"VARY" + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Average Range Outer Magnetometer (1 min)" + VALIDMIN:0.0 + VALIDMAX:7.0 + UNITS:" " + LABLAXIS:"Range Outer" + FORMAT:"F4.2" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"Average Range Outer Magnetometer (1 min)" + FILLVAL:-1.0E+31 + DEPEND_0:"Epoch" + VAR_TYPE:"support_data" + TIME_RES:"1 min" + SPC_MODE: + VarDescription: + DataType:"CDF_INT4" + NumElements:1 + NumDims:0 + RecVariance:"VARY" + PadValue:-2147483647 + VarAttributes: + FIELDNAM:"S/C operational mode (1 min)" + VALIDMIN:0 + VALIDMAX:10 + UNITS:" " + LABLAXIS:"S/C MODE" + FORMAT:"I2" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"S/C operational mode (1 min)" + FILLVAL:-1 + DEPEND_0:"Epoch" + VAR_TYPE:"support_data" + TIME_RES:"1 min" + MAG_MODE: + VarDescription: + DataType:"CDF_INT4" + NumElements:1 + NumDims:0 + RecVariance:"VARY" + PadValue:-2147483647 + VarAttributes: + FIELDNAM:"WIND/MFI operational mode (1 min)" + VALIDMIN:0 + VALIDMAX:15 + UNITS:" " + LABLAXIS:"MFI MODE" + FORMAT:"I2" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"WIND/MFI operational mode (1 min)" + FILLVAL:-1 + DEPEND_0:"Epoch" + VAR_TYPE:"support_data" + TIME_RES:"1 min" + Epoch3: + VarDescription: + DataType:"CDF_EPOCH" + NumElements:1 + NumDims:0 + RecVariance:"VARY" + PadValue:"0000-01-01T00:00:00.000" + VarAttributes: + FIELDNAM:"Time Line (3 sec)" + VALIDMIN:"1994-11-11T19:06:40.000" + VALIDMAX:"2030-12-30T17:06:40.000" + UNITS:"ms" + LABLAXIS:"Epoch" + FORMAT:"E14.8" + MONOTON:"INCREASE" + SCALETYP:"LINEAR" + CATDESC:"Time, Centered, Number of milliseconds since the epoch (3 sec)" + FILLVAL:"9999-12-31T23:59:59.999" + VAR_TYPE:"support_data" + TIME_RES:"3 sec" + Time3_PB5: + VarDescription: + DataType:"CDF_INT4" + NumElements:1 + NumDims:1 + DimSizes:[3] + RecVariance:"VARY" + DimVariances:["VARY"] + PadValue:-2147483647 + VarAttributes: + FIELDNAM:"Time Line (3 sec)" + VALIDMIN:[1994,316,0] + VALIDMAX:[2030,365,0] + MONOTON:"INCREASE" + SCALETYP:"LINEAR" + CATDESC:"Time of observation in Year, Day, & milliseconds (3 sec)" + FILLVAL:-1 + LABL_PTR_1:"label_time" + UNIT_PTR:"unit_time" + FORM_PTR:"format_time" + DEPEND_0:"Epoch3" + DEPEND_1:"unit_time" + VAR_TYPE:"support_data" + TIME_RES:"3 sec" + NUM3_PTS: + VarDescription: + DataType:"CDF_INT4" + NumElements:1 + NumDims:0 + RecVariance:"VARY" + PadValue:-2147483647 + VarAttributes: + FIELDNAM:"Number of points in average (3 sec)" + VALIDMIN:0 + VALIDMAX:100 + UNITS:" " + LABLAXIS:"No. Points" + FORMAT:"I4" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"Number of points in average (3 sec)" + FILLVAL:-1 + DEPEND_0:"Epoch3" + VAR_TYPE:"support_data" + TIME_RES:"3 sec" + B3F1: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:0 + RecVariance:"VARY" + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Magnetic field magnitude (3 sec)" + VALIDMIN:0.0 + VALIDMAX:65534.0 + UNITS:"nT (3sec)" + LABLAXIS:"B" + FORMAT:"E13.6" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"Magnetic field magnitude (3 sec)" + FILLVAL:-1.0E+31 + DEPEND_0:"Epoch3" + VAR_TYPE:"data" + TIME_RES:"3 sec" + VAR_NOTES:"Average of the magnitudes (F1)" + B3F1LOG: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:0 + RecVariance:"VARY" + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Magnetic field magnitude (3 sec)" + VALIDMIN:0.0 + VALIDMAX:65534.0 + UNITS:"nT (3sec)" + LABLAXIS:"B" + FORMAT:"E13.6" + MONOTON:"FALSE" + SCALETYP:"LOG" + CATDESC:"Magnetic field magnitude (3 sec - log scaled)" + FILLVAL:-1.0E+31 + DEPEND_0:"Epoch3" + FUNCTION:"alternate_view" + COMPONENT_0:"B3F1" + VIRTUAL:"TRUE" + VAR_TYPE:"data" + TIME_RES:"3 sec" + VAR_NOTES:"Average of the magnitudes (F1)" + B3RMSF1: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:0 + RecVariance:"VARY" + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"RMS magnitude (3 sec)" + VALIDMIN:0.0 + VALIDMAX:65534.0 + UNITS:"nT (3sec)" + LABLAXIS:"B_RMS" + FORMAT:"E13.6" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"RMS magnitude (3 sec)" + FILLVAL:-1.0E+31 + DEPEND_0:"Epoch3" + VAR_TYPE:"data" + TIME_RES:"3 sec" + VAR_NOTES:"RMS of the magnitudes (F1 RMS)" + B3GSM: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:1 + DimSizes:[3] + RecVariance:"VARY" + DimVariances:["VARY"] + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Magnetic field vector in GSM cartesian coordinates (3 sec)" + VALIDMIN:[-65534.0,-65534.0,-65534.0] + VALIDMAX:[65534.0,65534.0,65534.0] + UNITS:"nT (3sec)" + FORMAT:"E13.6" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"Magnetic field vector in GSM cartesian coordinates (3 sec)" + FILLVAL:-1.0E+31 + LABL_PTR_1:"label_bgsm" + DEPEND_0:"Epoch3" + DEPEND_1:"cartesian" + VAR_TYPE:"data" + TIME_RES:"3 sec" + B3RMSGSM: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:1 + DimSizes:[3] + RecVariance:"VARY" + DimVariances:["VARY"] + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"RMS vector in GSM coordinates (3 sec)" + VALIDMIN:[0.0,0.0,0.0] + VALIDMAX:[65534.0,65534.0,65534.0] + UNITS:"nT (3sec)" + FORMAT:"E13.6" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"RMS vector in GSM coordinates (3 sec)" + FILLVAL:-1.0E+31 + LABL_PTR_1:"label_bgsmr" + DEPEND_0:"Epoch3" + DEPEND_1:"cartesian" + VAR_TYPE:"data" + TIME_RES:"3 sec" + B3GSE: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:1 + DimSizes:[3] + RecVariance:"VARY" + DimVariances:["VARY"] + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Magnetic field vector in GSE cartesian coordinates (3 sec)" + VALIDMIN:[-65534.0,-65534.0,-65534.0] + VALIDMAX:[65534.0,65534.0,65534.0] + UNITS:"nT (3sec)" + FORMAT:"E13.6" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"Magnetic field vector in GSE cartesian coordinates (3 sec)" + FILLVAL:-1.0E+31 + LABL_PTR_1:"label_bgse" + DEPEND_0:"Epoch3" + DEPEND_1:"cartesian" + VAR_TYPE:"data" + TIME_RES:"3 sec" + B3GSEa: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:1 + DimSizes:[3] + RecVariance:"VARY" + DimVariances:["VARY"] + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Magnetic field vector in angular GSE coordinates (3 sec)" + VALIDMIN:[-65534.0,-90.0,0.0] + VALIDMAX:[65534.0,90.0,360.0] + FORMAT:"E13.6" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"Magnetic field vector in GSE angular coordinates (3 sec)" + FILLVAL:-1.0E+31 + LABL_PTR_1:"label_bgse_ang" + UNIT_PTR:"units_bgse3_ang" + DEPEND_0:"Epoch3" + DEPEND_1:"angle" + FUNCTION:"conv_pos1" + COMPONENT_0:"B3GSE" + VIRTUAL:"TRUE" + DISPLAY_TYPE:"time_series" + VAR_TYPE:"data" + TIME_RES:"3 sec" + B3RMSGSE: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:1 + DimSizes:[3] + RecVariance:"VARY" + DimVariances:["VARY"] + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"RMS vector in GSE coordinates (3 sec)" + VALIDMIN:[0.0,0.0,0.0] + VALIDMAX:[65534.0,65534.0,65534.0] + UNITS:"nT (3sec)" + FORMAT:"E13.6" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"RMS vector in GSE coordinates (3 sec)" + FILLVAL:-1.0E+31 + LABL_PTR_1:"label_bgser" + DEPEND_0:"Epoch3" + DEPEND_1:"cartesian" + VAR_TYPE:"data" + TIME_RES:"3 sec" + Epoch1: + VarDescription: + DataType:"CDF_EPOCH" + NumElements:1 + NumDims:0 + RecVariance:"VARY" + PadValue:"0000-01-01T00:00:00.000" + VarAttributes: + FIELDNAM:"Time Line (1 hour)" + VALIDMIN:"1994-11-11T19:06:40.000" + VALIDMAX:"2030-12-30T17:06:40.000" + UNITS:"ms" + LABLAXIS:"Epoch" + FORMAT:"E14.8" + MONOTON:"INCREASE" + SCALETYP:"LINEAR" + CATDESC:"Time, Centered, Number of milliseconds since the epoch (1 hour)" + FILLVAL:"9999-12-31T23:59:59.999" + VAR_TYPE:"support_data" + TIME_RES:"1 hour" + Time1_PB5: + VarDescription: + DataType:"CDF_INT4" + NumElements:1 + NumDims:1 + DimSizes:[3] + RecVariance:"VARY" + DimVariances:["VARY"] + PadValue:-2147483647 + VarAttributes: + FIELDNAM:"Time Line (1 hour)" + VALIDMIN:[1994,316,0] + VALIDMAX:[2030,365,0] + MONOTON:"INCREASE" + SCALETYP:"LINEAR" + CATDESC:"Time of observation in Year, Day, & milliseconds (1 hour)" + FILLVAL:-1 + LABL_PTR_1:"label_time" + UNIT_PTR:"unit_time" + FORM_PTR:"format_time" + DEPEND_0:"Epoch1" + DEPEND_1:"unit_time" + VAR_TYPE:"support_data" + TIME_RES:"1 hour" + NUM1_PTS: + VarDescription: + DataType:"CDF_INT4" + NumElements:1 + NumDims:0 + RecVariance:"VARY" + PadValue:-2147483647 + VarAttributes: + FIELDNAM:"Number of points in average (1 hour)" + VALIDMIN:0 + VALIDMAX:80000 + UNITS:" " + LABLAXIS:"No. Points" + FORMAT:"I4" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"Number of points in average (1 hour)" + FILLVAL:-1 + DEPEND_0:"Epoch1" + VAR_TYPE:"support_data" + TIME_RES:"1 hour" + B1F1: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:0 + RecVariance:"VARY" + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Magnetic field magnitude (1 hour)" + VALIDMIN:0.0 + VALIDMAX:65534.0 + UNITS:"nT (1hr)" + LABLAXIS:"B" + FORMAT:"E13.6" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"Magnetic field magnitude (1 hour)" + FILLVAL:-1.0E+31 + DEPEND_0:"Epoch1" + VAR_TYPE:"data" + TIME_RES:"1 hour" + VAR_NOTES:"Average of the magnitudes (F1)" + B1F1LOG: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:0 + RecVariance:"VARY" + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Magnetic field magnitude (1 hour)" + VALIDMIN:0.0 + VALIDMAX:65534.0 + UNITS:"nT (1hr)" + LABLAXIS:"B" + FORMAT:"E13.6" + MONOTON:"FALSE" + SCALETYP:"LOG" + CATDESC:"Magnetic field magnitude (1 hour - log scaled)" + FILLVAL:-1.0E+31 + DEPEND_0:"Epoch1" + FUNCTION:"alternate_view" + COMPONENT_0:"B1F1" + VIRTUAL:"TRUE" + VAR_TYPE:"data" + TIME_RES:"1 hour" + VAR_NOTES:"Average of the magnitudes (F1)" + B1RMSF1: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:0 + RecVariance:"VARY" + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"RMS magnitude (1 hour)" + VALIDMIN:0.0 + VALIDMAX:65534 + UNITS:"nT (1hr)" + LABLAXIS:"B_RMS" + FORMAT:"E13.6" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"RMS magnitude (1 hour)" + FILLVAL:-1.0E+31 + DEPEND_0:"Epoch1" + VAR_TYPE:"data" + TIME_RES:"1 hour" + VAR_NOTES:"RMS of the magnitudes (F1 RMS)" + B1GSM: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:1 + DimSizes:[3] + RecVariance:"VARY" + DimVariances:["VARY"] + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Magnetic field vector in GSM coordinates (1 hour)" + VALIDMIN:[-65534.0,-65534.0,-65534.0] + VALIDMAX:[65534.0,65534.0,65534.0] + UNITS:"nT (1hr)" + FORMAT:"E13.6" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"Magnetic field vector in GSM cartesian coordinates (1 hour)" + FILLVAL:-1.0E+31 + LABL_PTR_1:"label_bgsm" + DEPEND_0:"Epoch1" + DEPEND_1:"cartesian" + VAR_TYPE:"data" + TIME_RES:"1 hour" + B1RMSGSM: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:1 + DimSizes:[3] + RecVariance:"VARY" + DimVariances:["VARY"] + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"RMS vector in GSM coordinates (1 hour)" + VALIDMIN:[0.0,0.0,0.0] + VALIDMAX:[65534.0,65534.0,65534.0] + UNITS:"nT (1hr)" + FORMAT:"E13.6" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"RMS vector in GSM coordinates (1 hour)" + FILLVAL:-1.0E+31 + LABL_PTR_1:"label_bgsmr" + DEPEND_0:"Epoch1" + DEPEND_1:"cartesian" + VAR_TYPE:"data" + TIME_RES:"1 hour" + B1GSE: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:1 + DimSizes:[3] + RecVariance:"VARY" + DimVariances:["VARY"] + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Magnetic field vector in GSE coordinates (1 hour)" + VALIDMIN:[-65534.0,-65534.0,-65534.0] + VALIDMAX:[65534.0,65534.0,65534.0] + UNITS:"nT (1hr)" + FORMAT:"E13.6" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"Magnetic field vector in GSE cartesian coordinates (1 hour)" + FILLVAL:-1.0E+31 + LABL_PTR_1:"label_bgse" + DEPEND_0:"Epoch1" + DEPEND_1:"cartesian" + VAR_TYPE:"data" + TIME_RES:"1 hour" + B1GSEa: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:1 + DimSizes:[3] + RecVariance:"VARY" + DimVariances:["VARY"] + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Magnetic field vector in angular GSE coordinates (1 hour)" + VALIDMIN:[-65534.0,-90.0,0.0] + VALIDMAX:[65534.0,90.0,360.0] + FORMAT:"E13.6" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"Magnetic field vector in GSE angular coordinates (1 hour)" + FILLVAL:-1.0E+31 + LABL_PTR_1:"label_bgse_ang" + UNIT_PTR:"units_bgse1_ang" + DEPEND_0:"Epoch1" + DEPEND_1:"angle" + FUNCTION:"conv_pos1" + COMPONENT_0:"B1GSE" + VIRTUAL:"TRUE" + DISPLAY_TYPE:"time_series" + VAR_TYPE:"data" + TIME_RES:"1 hour" + B1RMSGSE: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:1 + DimSizes:[3] + RecVariance:"VARY" + DimVariances:["VARY"] + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"RMS vector in GSE coordinates (1 hour)" + VALIDMIN:[0.0,0.0,0.0] + VALIDMAX:[65534.0,65534.0,65534.0] + UNITS:"nT (1hr)" + FORMAT:"E13.6" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"RMS vector in GSE coordinates (1 hour)" + FILLVAL:-1.0E+31 + LABL_PTR_1:"label_bgser" + DEPEND_0:"Epoch1" + VAR_TYPE:"data" + TIME_RES:"1 hour" + DIST1: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:0 + RecVariance:"VARY" + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Radial Distance (1 hour)" + VALIDMIN:0.0 + VALIDMAX:300.0 + UNITS:"Re (1hr)" + LABLAXIS:"Rad. Dist." + FORMAT:"E13.6" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"Distance from the center of the earth (Define Re = 6378km) (1 hour)" + FILLVAL:-1.0E+31 + DEPEND_0:"Epoch1" + VAR_TYPE:"data" + TIME_RES:"1 hour" + P1GSM: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:1 + DimSizes:[3] + RecVariance:"VARY" + DimVariances:["VARY"] + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Position in GSM coordinates (1 hour)" + VALIDMIN:[-300.0,-300.0,-300.0] + VALIDMAX:[300.0,300.0,300.0] + UNITS:"Re (1hr)" + FORMAT:"E13.6" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"Position vector in GSM coordinates (Define Re = 6378km) (1 hour)" + FILLVAL:-1.0E+31 + LABL_PTR_1:"label_pgsm" + DEPEND_0:"Epoch1" + DEPEND_1:"cartesian" + VAR_TYPE:"data" + TIME_RES:"1 hour" + P1GSE: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:1 + DimSizes:[3] + RecVariance:"VARY" + DimVariances:["VARY"] + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Position in GSE coordinates (1 hour)" + VALIDMIN:[-300.0,-300.0,-300.0] + VALIDMAX:[300.0,300.0,300.0] + UNITS:"Re (1hr)" + FORMAT:"E13.6" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"Position vector in GSE coordinates (Define Re = 6378km) (1 hour)" + FILLVAL:-1.0E+31 + LABL_PTR_1:"label_pgse" + DEPEND_0:"Epoch1" + DEPEND_1:"cartesian" + VAR_TYPE:"data" + TIME_RES:"1 hour" + DISTV: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:0 + RecVariance:"VARY" + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Radial DistanceV (1 min)" + VALIDMIN:0.0 + VALIDMAX:300.0 + UNITS:"Re (1min)" + LABLAXIS:"Rad. Dist." + FORMAT:"E13.6" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"Time axis label: Distance from the center of the earth (Define Re = 6378km) (1 min)" + FILLVAL:-1.0E+31 + DEPEND_0:"Epoch" + FUNCTION:"alternate_view" + COMPONENT_0:"DIST" + VIRTUAL:"TRUE" + DISPLAY_TYPE:"time_text" + VAR_TYPE:"data" + TIME_RES:"1 min" + PGSMV: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:1 + DimSizes:[3] + RecVariance:"VARY" + DimVariances:["VARY"] + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Position in GSM coordinatesV (1 min)" + VALIDMIN:[-300.0,-300.0,-300.0] + VALIDMAX:[300.0,300.0,300.0] + UNITS:"Re (1min)" + FORMAT:"E13.6" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"Time axis label: Position vector in GSM coordinates (Define Re = 6378km) (1 min)" + FILLVAL:-1.0E+31 + LABL_PTR_1:"label_pgsm" + DEPEND_0:"Epoch" + DEPEND_1:"cartesian" + FUNCTION:"alternate_view" + COMPONENT_0:"PGSM" + VIRTUAL:"TRUE" + DISPLAY_TYPE:"time_text" + VAR_TYPE:"data" + TIME_RES:"1 min" + PGSEV: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:1 + DimSizes:[3] + RecVariance:"VARY" + DimVariances:["VARY"] + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Position in GSE coordinatesV (1 min)" + VALIDMIN:[-300.0,-300.0,-300.0] + VALIDMAX:[300.0,300.0,300.0] + UNITS:"Re (1min)" + FORMAT:"E13.6" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"Time axis label: Position vector in GSE coordinates (Define Re = 6378km) (1 min)" + FILLVAL:-1.0E+31 + LABL_PTR_1:"label_pgse" + DEPEND_0:"Epoch" + DEPEND_1:"cartesian" + FUNCTION:"alternate_view" + COMPONENT_0:"PGSE" + VIRTUAL:"TRUE" + DISPLAY_TYPE:"time_text" + VAR_TYPE:"data" + TIME_RES:"1 min" + DIST1V: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:0 + RecVariance:"VARY" + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Radial DistanceV (1 hour)" + VALIDMIN:0.0 + VALIDMAX:300.0 + UNITS:"Re (1hr)" + LABLAXIS:"Rad. Dist." + FORMAT:"E9.2" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"Time axis label: Distance from the center of the earth (Define Re = 6378km) (1 hour)" + FILLVAL:-1.0E+31 + DEPEND_0:"Epoch1" + FUNCTION:"alternate_view" + COMPONENT_0:"DIST1" + VIRTUAL:"TRUE" + DISPLAY_TYPE:"time_text" + VAR_TYPE:"data" + TIME_RES:"1 hour" + P1GSMV: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:1 + DimSizes:[3] + RecVariance:"VARY" + DimVariances:["VARY"] + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Position in GSM coordinatesV (1 hour).." + VALIDMIN:[-300.0,-300.0,-300.0] + VALIDMAX:[300.0,300.0,300.0] + UNITS:"Re (1hr)" + FORMAT:"E13.6" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"Time axis label: Position vector in GSM coordinates (Define Re = 6378km) (1 hour)" + FILLVAL:-1.0E+31 + LABL_PTR_1:"label_pgsm" + DEPEND_0:"Epoch1" + DEPEND_1:"cartesian" + FUNCTION:"alternate_view" + COMPONENT_0:"P1GSM" + VIRTUAL:"TRUE" + DISPLAY_TYPE:"time_text" + VAR_TYPE:"data" + TIME_RES:"1 hour" + P1GSEV: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:1 + DimSizes:[3] + RecVariance:"VARY" + DimVariances:["VARY"] + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Position in GSE coordinatesV (1 hour)" + VALIDMIN:[-300.0,-300.0,-300.0] + VALIDMAX:[300.0,300.0,300.0] + UNITS:"Re (1hr)" + FORMAT:"E13.6" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"Time axis label: Position vector in GSE coordinates (Define Re = 6378km) (1 hour)" + FILLVAL:-1.0E+31 + LABL_PTR_1:"label_pgse" + DEPEND_0:"Epoch1" + DEPEND_1:"cartesian" + FUNCTION:"alternate_view" + COMPONENT_0:"P1GSE" + VIRTUAL:"TRUE" + DISPLAY_TYPE:"time_text" + VAR_TYPE:"data" + TIME_RES:"1 hour" + S1GSM: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:1 + DimSizes:[3] + RecVariance:"VARY" + DimVariances:["VARY"] + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Unit spin vector in GSM coordinates (1 hour)" + VALIDMIN:[-1.0,-1.0,-1.0] + VALIDMAX:[1.0,1.0,1.0] + UNITS:" " + LABLAXIS:"Unit Vector" + FORMAT:"E13.6" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"Unit spin vector in GSM coordinates (1 hour)" + FILLVAL:-1.0E+31 + DEPEND_0:"Epoch1" + VAR_TYPE:"metadata" + TIME_RES:"1 hour" + S1GSE: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:1 + DimSizes:[3] + RecVariance:"VARY" + DimVariances:["VARY"] + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Unit spin vector in GSE coordinates (1 hour)" + VALIDMIN:[-1.0,-1.0,-1.0] + VALIDMAX:[1.0,1.0,1.0] + UNITS:" " + LABLAXIS:"Unit Vector" + FORMAT:"E13.6" + MONOTON:"FALSE" + SCALETYP:"LINEAR" + CATDESC:"Unit spin vector in GSE coordinates (1 hour)" + FILLVAL:-1.0E+31 + DEPEND_0:"Epoch1" + VAR_TYPE:"metadata" + TIME_RES:"1 hour" + ZERO_I: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:2 + DimSizes:[3,8] + RecVariance:"NOVARY" + DimVariances:["VARY","VARY"] + NumWrittenRecords:1 + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Sensor Zeros (Inner)" + FILLVAL:-1.0E+31 + VAR_TYPE:"metadata" + VarData: + [1883.02, 2007.32, 2045.7, 2047.08, 2044.32, 2045.11, 2049.03, 2048.01, 1478.36, 1902.24, 2022.31, 2041.32, 2047.11, 2046.75, 2051.94, 2047.98, 2018.11, 2052.2, 2045.6, 2044.24, 2045.32, 2047.34, 2049.08, 2048.02] + SENS_I: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:2 + DimSizes:[3,8] + RecVariance:"NOVARY" + DimVariances:["VARY","VARY"] + NumWrittenRecords:1 + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Sensor Sensitivities (Inner)" + FILLVAL:-1.0E+31 + VAR_TYPE:"metadata" + VarData: + [0.00207329, 0.00783044, 0.0323013, 0.126701, 0.501958, 1.96778, 8.04288, 31.5194, 0.00201679, 0.00783654, 0.0318094, 0.125311, 0.493705, 1.94592, 7.91017, 31.1714, 0.00206, 0.007905, 0.03231, 0.12691, 0.50356, 1.97663, 8.06849, 31.6655] + AMPL_I: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:2 + DimSizes:[3,8] + RecVariance:"NOVARY" + DimVariances:["VARY","VARY"] + NumWrittenRecords:1 + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Amplitude Correction (Inner)" + FILLVAL:-1.0E+31 + VAR_TYPE:"metadata" + VarData: + [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0] + ORTH_I: + VarDescription: + DataType:"CDF_REAL8" + NumElements:1 + NumDims:2 + DimSizes:[3,3] + RecVariance:"NOVARY" + DimVariances:["VARY","VARY"] + NumWrittenRecords:1 + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Orthogonalization Matrix (Inner)" + FILLVAL:-1.0E+31 + VAR_TYPE:"metadata" + VarData: + [0.999733, 0.00995519, -0.024519, 0.00166613, 0.999941, -0.0161693, 0.019728, 0.0171892, 0.999669] + PAYLD_I: + VarDescription: + DataType:"CDF_REAL8" + NumElements:1 + NumDims:2 + DimSizes:[3,3] + RecVariance:"NOVARY" + DimVariances:["VARY","VARY"] + NumWrittenRecords:1 + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Payload Rotation Matrix (Inner)" + FILLVAL:-1.0E+31 + VAR_TYPE:"metadata" + VarData: + [1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, -1.0] + FLAG_I: + VarDescription: + DataType:"CDF_INT4" + NumElements:1 + NumDims:0 + RecVariance:"NOVARY" + NumWrittenRecords:1 + PadValue:-2147483647 + VarAttributes: + FIELDNAM:"Sensor Zero Flag (Inner)" + FILLVAL:-1 + VAR_TYPE:"metadata" + VarData: + [5] + ZERO_O: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:2 + DimSizes:[3,8] + RecVariance:"NOVARY" + DimVariances:["VARY","VARY"] + NumWrittenRecords:1 + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Sensor Zeros (Outer)" + FILLVAL:-1.0E+31 + VAR_TYPE:"metadata" + VarData: + [-9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30] + SENS_O: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:2 + DimSizes:[3,8] + RecVariance:"NOVARY" + DimVariances:["VARY","VARY"] + NumWrittenRecords:1 + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Sensor Sensitivities (Outer)" + FILLVAL:-1.0E+31 + VAR_TYPE:"metadata" + VarData: + [-9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30] + AMPL_O: + VarDescription: + DataType:"CDF_REAL4" + NumElements:1 + NumDims:2 + DimSizes:[3,8] + RecVariance:"NOVARY" + DimVariances:["VARY","VARY"] + NumWrittenRecords:1 + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Amplitude Correction (Outer)" + FILLVAL:-1.0E+31 + VAR_TYPE:"metadata" + VarData: + [-9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30, -9.999999848243207E+30] + ORTH_O: + VarDescription: + DataType:"CDF_REAL8" + NumElements:1 + NumDims:2 + DimSizes:[3,3] + RecVariance:"NOVARY" + DimVariances:["VARY","VARY"] + NumWrittenRecords:1 + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Orthogonalization Matrix (Outer)" + FILLVAL:-1.0E+31 + VAR_TYPE:"metadata" + VarData: + [-1.0E+31, -1.0E+31, -1.0E+31, -1.0E+31, -1.0E+31, -1.0E+31, -1.0E+31, -1.0E+31, -1.0E+31] + PAYLD_O: + VarDescription: + DataType:"CDF_REAL8" + NumElements:1 + NumDims:2 + DimSizes:[3,3] + RecVariance:"NOVARY" + DimVariances:["VARY","VARY"] + NumWrittenRecords:1 + PadValue:-1.0E+30 + VarAttributes: + FIELDNAM:"Payload Rotation Matrix (Outer)" + FILLVAL:-1.0E+31 + VAR_TYPE:"metadata" + VarData: + [-1.0E+31, -1.0E+31, -1.0E+31, -1.0E+31, -1.0E+31, -1.0E+31, -1.0E+31, -1.0E+31, -1.0E+31] + FLAG_O: + VarDescription: + DataType:"CDF_INT4" + NumElements:1 + NumDims:0 + RecVariance:"NOVARY" + NumWrittenRecords:1 + PadValue:-2147483647 + VarAttributes: + FIELDNAM:"Sensor Zero Flag (Outer)" + FILLVAL:-1 + VAR_TYPE:"metadata" + VarData: + [-1] + label_time: + VarDescription: + DataType:"CDF_CHAR" + NumElements:27 + NumDims:1 + DimSizes:[3] + RecVariance:"NOVARY" + DimVariances:["VARY"] + NumWrittenRecords:1 + PadValue:" " + VarAttributes: + FIELDNAM:"Label for Time_PB5" + VAR_TYPE:"metadata" + VarData: + ["Year ", "Day of Year (Jan 1 = Day 1)", "Elapsed milliseconds of day"] + format_time: + VarDescription: + DataType:"CDF_CHAR" + NumElements:2 + NumDims:1 + DimSizes:[3] + RecVariance:"NOVARY" + DimVariances:["VARY"] + NumWrittenRecords:1 + PadValue:" " + VarAttributes: + FIELDNAM:"Format for Time_PB5" + VAR_TYPE:"metadata" + VarData: + ["I4", "I3", "I8"] + unit_time: + VarDescription: + DataType:"CDF_CHAR" + NumElements:4 + NumDims:1 + DimSizes:[3] + RecVariance:"NOVARY" + DimVariances:["VARY"] + NumWrittenRecords:1 + PadValue:" " + VarAttributes: + FIELDNAM:"Units for Time_PB5" + VAR_TYPE:"metadata" + VarData: + ["year", "day ", "msec"] + units_bgse__ang: + VarDescription: + DataType:"CDF_CHAR" + NumElements:10 + NumDims:1 + DimSizes:[3] + RecVariance:"NOVARY" + DimVariances:["VARY"] + NumWrittenRecords:1 + PadValue:" " + VarAttributes: + FIELDNAM:"Units for B in GSE angular coordinates" + VAR_TYPE:"metadata" + VarData: + ["nT (1min) ", "Deg.(1min)", "Deg.(1min)"] + units_bgse3_ang: + VarDescription: + DataType:"CDF_CHAR" + NumElements:10 + NumDims:1 + DimSizes:[3] + RecVariance:"NOVARY" + DimVariances:["VARY"] + NumWrittenRecords:1 + PadValue:" " + VarAttributes: + FIELDNAM:"Units for B in GSE angular coordinates" + VAR_TYPE:"metadata" + VarData: + ["nT (3sec) ", "Deg.(3sec)", "Deg.(3sec)"] + units_bgse1_ang: + VarDescription: + DataType:"CDF_CHAR" + NumElements:9 + NumDims:1 + DimSizes:[3] + RecVariance:"NOVARY" + DimVariances:["VARY"] + NumWrittenRecords:1 + PadValue:" " + VarAttributes: + FIELDNAM:"Units for B in GSE angular coordinates" + VAR_TYPE:"metadata" + VarData: + ["nT(1hr) ", "Deg.(1hr)", "Deg.(1hr)"] + label_bgse_ang: + VarDescription: + DataType:"CDF_CHAR" + NumElements:13 + NumDims:1 + DimSizes:[3] + RecVariance:"NOVARY" + DimVariances:["VARY"] + NumWrittenRecords:1 + PadValue:" " + VarAttributes: + FIELDNAM:"Label for B in GSE angular coordinates" + VAR_TYPE:"metadata" + VarData: + ["B (GSE) ", " Lat-B (GSE)", "Phi-B (GSE) "] + label_bgsm: + VarDescription: + DataType:"CDF_CHAR" + NumElements:8 + NumDims:1 + DimSizes:[3] + RecVariance:"NOVARY" + DimVariances:["VARY"] + NumWrittenRecords:1 + PadValue:" " + VarAttributes: + FIELDNAM:"Label for B in GMS coordinates" + VAR_TYPE:"metadata" + VarData: + ["Bx (GSM)", "By (GSM)", "Bz (GSM)"] + label_bgse: + VarDescription: + DataType:"CDF_CHAR" + NumElements:8 + NumDims:1 + DimSizes:[3] + RecVariance:"NOVARY" + DimVariances:["VARY"] + NumWrittenRecords:1 + PadValue:" " + VarAttributes: + FIELDNAM:"Label for B in GSE coordinates" + VAR_TYPE:"metadata" + VarData: + ["Bx (GSE)", "By (GSE)", "Bz (GSE)"] + label_bgsmr: + VarDescription: + DataType:"CDF_CHAR" + NumElements:12 + NumDims:1 + DimSizes:[3] + RecVariance:"NOVARY" + DimVariances:["VARY"] + NumWrittenRecords:1 + PadValue:" " + VarAttributes: + FIELDNAM:"Label for B RMS in GSM coordinates" + VAR_TYPE:"metadata" + VarData: + ["Bx_RMS (GSM)", "By_RMS (GSM)", "Bz_RMS (GSM)"] + label_bgser: + VarDescription: + DataType:"CDF_CHAR" + NumElements:12 + NumDims:1 + DimSizes:[3] + RecVariance:"NOVARY" + DimVariances:["VARY"] + NumWrittenRecords:1 + PadValue:" " + VarAttributes: + FIELDNAM:"Label for B RMS in GSE coordinates" + VAR_TYPE:"metadata" + VarData: + ["Bx_RMS (GSE)", "By_RMS (GSE)", "Bz_RMS (GSE)"] + label_dbsc: + VarDescription: + DataType:"CDF_CHAR" + NumElements:12 + NumDims:1 + DimSizes:[3] + RecVariance:"NOVARY" + DimVariances:["VARY"] + NumWrittenRecords:1 + PadValue:" " + VarAttributes: + FIELDNAM:"Label for delta B spacecraft" + VAR_TYPE:"metadata" + VarData: + ["X (Delta SC)", "Y (Delta SC)", "Z (Delta SC)"] + label_pgsm: + VarDescription: + DataType:"CDF_CHAR" + NumElements:7 + NumDims:1 + DimSizes:[3] + RecVariance:"NOVARY" + DimVariances:["VARY"] + NumWrittenRecords:1 + PadValue:" " + VarAttributes: + FIELDNAM:"Label for S/C Position in GSM coordinates" + VAR_TYPE:"metadata" + VarData: + ["X (GSM)", "Y (GSM)", "Z (GSM)"] + label_pgse: + VarDescription: + DataType:"CDF_CHAR" + NumElements:7 + NumDims:1 + DimSizes:[3] + RecVariance:"NOVARY" + DimVariances:["VARY"] + NumWrittenRecords:1 + PadValue:" " + VarAttributes: + FIELDNAM:"Label for S/C Position in GSE coordinates" + VAR_TYPE:"metadata" + VarData: + ["X (GSE)", "Y (GSE)", "Z (GSE)"] + cartesian: + VarDescription: + DataType:"CDF_CHAR" + NumElements:11 + NumDims:1 + DimSizes:[3] + RecVariance:"NOVARY" + DimVariances:["VARY"] + NumWrittenRecords:1 + PadValue:" " + VarAttributes: + FIELDNAM:"Dimension Label" + VAR_TYPE:"metadata" + DICT_KEY:"ISTP>vector>cartesian" + VarData: + ["x-component", "y-component", "z-component"] + angle: + VarDescription: + DataType:"CDF_CHAR" + NumElements:5 + NumDims:1 + DimSizes:[3] + RecVariance:"NOVARY" + DimVariances:["VARY"] + NumWrittenRecords:1 + PadValue:" " + VarAttributes: + FIELDNAM:"Dimension Label" + VAR_TYPE:"metadata" + DICT_KEY:"ISTP>vector>angle" + VarData: + ["r ", "theta", "phi "] + EmptyAttributes: + VariableAttributes:["LABL_PTR_2","AVE_TYPE"] diff --git a/cdf38_1-dist/cdfjava/cdfml/AAREADME.1ST b/cdf38_1-dist/cdfjava/cdfml/AAREADME.1ST new file mode 100644 index 0000000..c9b7766 --- /dev/null +++ b/cdf38_1-dist/cdfjava/cdfml/AAREADME.1ST @@ -0,0 +1,25 @@ +Files in the cdfml.tar archive... +----------------------------------------------------------- + +1. cdfml.jar: The Java archive file that contains CDF2CDFML and + CDFML2CDF Java tool programs. + +2. test.cdf: A test CDF file. + +3. testdtd.xml: A validated test XML file that conforms to CDF XML DTD. It + is created from CDF2CDFML program. + +4. testxsd.xml: A validated test XML file that conforms to CDF XML Schema. + +5. cdf.dtd: The CDF XML Document Type Definition (DTD). + +6. cdf.xsd: The CDF XML Schema. + +7. AAREADME.1ST: This file file that you are browsing. + +8. Readme.txt: This file contains the information on how to install and + run the Java-based CDF2CDFML and CDFML2CDF programs. + +9. about.cdfVarData: This file presents some examples of CDFML in + different forms. They are all valid and + comforming to cdf.dtd and cdf.xsd. diff --git a/cdf38_1-dist/cdfjava/cdfml/Readme.txt b/cdf38_1-dist/cdfjava/cdfml/Readme.txt new file mode 100644 index 0000000..06fce7a --- /dev/null +++ b/cdf38_1-dist/cdfjava/cdfml/Readme.txt @@ -0,0 +1,78 @@ +*************************************************************************** +* Please make sure that you have done the following before proceeding * +* with the CDF Markup Language (CDFML) utilities: * +* * +* - Installed JDK 1.7 or later. * +* - installed/built the CDF distribution package. * +* - optionally, install Oracle's Multi-Schema XML Validator. * +*************************************************************************** + +Instructions for using the CDF's CDFML programs +----------------------------------------------- + +1. Set the CLASSPATH and LD_LIBRARY_PATH (DYLD_LIBRARY_PATH for Mac OSX) + environment variables. [On Windows, run setenv.bat located in the top + distribution to the setup, if not already done when the package + was installed.] + + 1) CLASSPATH should point to the following information: + - the location (full path name) of the cdfml.jar file that was + extracted in step 1. + - the location (full path name) of the cdfjava.jar file. + + Examples: + + - using Oracle's Java + + setenv CLASSPATH ${CLASSPATH}:.: \ + /home/cdf/cdf38_1-dist/cdfjava/classes/cdfjava.jar: \ + /home/cdf/cdf38_1-dist/cdfjava/cdfml/cdfml.jar + + Note: + Absolute/full path name (not relative path) MUST be used when adding + the location of a program to the CLASSPATH environment variable. + + + 2) LD_LIBRARY_PATH should point to the following information: + - the location (full path name) of the CDF-Java JNI + libcdfNativeLibrary.[so|sl|jnilib] (it should be under cdfjava/lib + from the distribution) + + - the location (full path name) of the CDF shared library that is + defined by the environment variable CDF_LIB. This variable is + defined when the CDF library is installed. + + Example: + setenv LD_LIBRARY_PATH .:/home/cdf/cdf38_1-dist/cdfjava/lib:${CDF_LIB} + + OR for Mac OSX, + setenv DYLD_LIBRARY_PATH .:/home/cdf/cdf38_1-dist/cdfjava/lib:${CDF_LIB} + + +3. Use CDF2CDFML Java program to create a CDFML document from a CDF file. + To get the instructions and valid arguments/options, enter: + + java CDF2CDFML + +4. Use CDFML2CDF Java program to convert a CDFML document to a CDF file. To + get the instructions and valid arguments/options, enter: + + java CDFML2CDF + +5. Use Oracle's Multi-Schema Validator, a Java tool, to validate a CDFML document + conforming to cdf.dtd or cdf.xsd, if needed. + + Run: java -jar msv.jar cdf.dtd test.xml or + java -jar msv.jar cdf.xsd testxsd.xml + + +Note: + If one creates a CDFML file from an existing CDF file and creates a new + CDF file from that CDFML file, the contents of the new file is the same + as the original CDF file. But the ordering of some of the variable + attributes in the new file could be different from the original file + that should be transparent to the users. + + Please direct any comments or questions to: + gsfc-cdf-support@lists.nasa.gov + diff --git a/cdf38_1-dist/cdfjava/cdfml/about.cdfVarData b/cdf38_1-dist/cdfjava/cdfml/about.cdfVarData new file mode 100644 index 0000000..010ce5e --- /dev/null +++ b/cdf38_1-dist/cdfjava/cdfml/about.cdfVarData @@ -0,0 +1,70 @@ +Information here represents some valid but different forms for the cdfVarData +element. Data values specified within the 'record' tag constitutes a record. + + Example 1: + + 10 20 30 + 40 50 60 + + + Example 2: + + 10 20 + 30 + + + 40 + 50 + 60 + + + + Example 3: + + + @~First string@~ + @~second string@~ + + + + Example 4: + + + First string + Second string + + + + Example 5 (sparse elements): + + + 10 + 123 + + + + Example 6: + + + 10 0 0 0 0 123 0 0 0 0 + + + + +NOTE: + The first example is identical to the second example. The optional + recNum attribute specifies the record number. If it is not + present, it would be record number 0 or the next record from + the previous record number (either specified or not). + The third example is identical to the fourth example. The CDF_CHAR + or CDF_UCHAR data type variable needs delimiter (default or + user specified) to delimit elements' multi-values data for + a record. + The fifth example is similar to the sixth example. It + allows to provide data values only for those elements + that have real data. Other elements will have default + values. This is a sampled 1D variable with 10 integer + elements. If the CDF distribution is built to have 0 + as the default value for an integer, these two examples + will create two identical CDF files by CDFML2CDF. + diff --git a/cdf38_1-dist/cdfjava/cdfml/cdf.dtd b/cdf38_1-dist/cdfjava/cdfml/cdf.dtd new file mode 100644 index 0000000..1cbff9e --- /dev/null +++ b/cdf38_1-dist/cdfjava/cdfml/cdf.dtd @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cdf38_1-dist/cdfjava/cdfml/cdf.xsd b/cdf38_1-dist/cdfjava/cdfml/cdf.xsd new file mode 100644 index 0000000..0725f10 --- /dev/null +++ b/cdf38_1-dist/cdfjava/cdfml/cdf.xsd @@ -0,0 +1,306 @@ + + + + + Schema for CDF Markup Language (CDFML) + Version: 1.2 (October 21, 2011) + History: + Date Version Comments + ==== ======= ======== + May 2002 1.0 Original + Oct 11, 2007 1.1 Made the default namespace the same as the + targetNamespace. + Added the CDF_EPOCH16 data type. + Oct 21, 2011 1.2 Added CDF_INT8 and CDF_TIME_TT2000 data types. + May 21, 2018 1.2 Added data types for choice elements. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cdf38_1-dist/cdfjava/cdfml/test.cdf b/cdf38_1-dist/cdfjava/cdfml/test.cdf new file mode 100644 index 0000000000000000000000000000000000000000..2d3a7f8094186752bb7f99d7bf042c558471c288 GIT binary patch literal 116277 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 + + + + + + + + + + + 5.3432 + 5.5 + 5.5 10.2 + 1 + 1 2 3 + -32768 + 1 2 + 3 + 4 5 + + 4294967295 + 4294967295 2147483648 + 65535 + 65535 65534 + 255 + 255 254 + + + 25-Apr-2002 00:00:00.000 + 2008-02-04T06:08:10.012014016 + + + 13-May-2004 15:08:11.022.033.044.055 + + + + + + + + 20 + + + 90 + + + + 1 2 3 + + + + + + 254 254 5 + 15 25 35 + 100 128 255 + + + + + + + + + + 180 + + + + + + + + + + + + + 100 200 300 + -32767 -32767 -32767 + 10 20 30 + 40 32767 -32768 + -32767 -32767 -32767 + -32767 -32767 -32767 + -32767 -32767 -32767 + -32767 -32767 -32767 + -32767 -32767 -32767 + -32767 -32767 -32767 + 11 22 33 + -32767 -32767 -32767 + -32767 -32767 -32767 + -32767 -32767 -32767 + -32767 -32767 -32767 + -32767 -32767 -32767 + -32767 -32767 -32767 + -32767 -32767 -32767 + -32767 -32767 -32767 + -32767 -32767 -32767 + + + + + + 101 201 301 + 21 65534 31 + 51 65534 61 + 32767 65534 65535 + 65534 65534 65534 + 333 444 555 + + + + + + 110 210 310 410 510 610 + 10 20 40 50 7 8 + 90 95 96 97 32767 -32768 + + + + + + 10 20 40 50 7 8 9 10 90 95 96 97 98 99 80 85 + + + + + + 100 200 300 400 500 600 + 4294967294 4294967294 4294967294 4294967294 4294967294 4294967294 + 4294967294 4294967294 4294967294 4294967294 4294967294 4294967294 + 10 20 40 50 70 80 + 90 95 96 97 2147483648 4294967295 + + + + + + 100 128 255 + + + + + + + + + + + + + 55.5 -1.0E30 66.6 + 666.66 777.77 888.88 + 96.5 97.5 98.5 + 100.5 110.6 120.7 + 200.5 210.6 220.7 + + + + + + 5.5 -0.0 6.6 + 9.5 -0.0 8.5 + 10.5 10.6 10.7 + 20.5 20.6 20.7 + -1.0E30 -1.0E30 -1.0E30 + 333.3 444.4 555.5 + + + + + + 55.55 + 66.66 + -1.0E30 + -1.0E30 + -1.0E30 + 999.99 + + + + + + 9.5 -0.0 8.5 + + + + + + 77.77 + + + + + + -1.0E30 -1.0E30 -1.0E30 + 18888.8 -1.0E30 19999.9 + -1.0E30 -1.0E30 -1.0E30 + -1.0E30 -1.0E30 -1.0E30 + -1.0E30 -1.0E30 -1.0E30 + 333.333 444.444 555.555 + 10.5 10.6 10.7 + 20.5 20.6 20.7 + + + + + + + 13-May-2002 00:00:00.000 + + + + 05-Mar-1999 05:06:07.100 + 02-Jan-1998 03:04:05.666 + + + + + + + 13-May-2002 15:08:01.002.003.004.005 + + + + 29-Nov-2004 15:55:23.030.411.522.634 + 29-Dec-2004 16:56:24.031.411.522.634 + 29-Dec-2005 16:56:24.031.444.555.777 + + + + + + 88888 99999 + 1 -1 + 10 -10 + 9223372036854775807 -9223372036854775808 + + + + + + + 2010-05-13T10:20:30.040050060 + + + + 2008-12-31T23:59:58.123456789 + 2008-12-31T23:59:59.123456789 + 2008-12-31T23:59:60.123456789 + 2009-01-01T00:00:00.123456789 + 2009-01-01T00:00:01.123456789 + 2009-01-01T00:00:02.223456789 + + + + + + + + + + 180 + + + + + + + + + + + + + 100 200 300 + -32767 -32767 -32767 + 10 20 30 + 40 32767 -32768 + -32767 -32767 -32767 + -32767 -32767 -32767 + -32767 -32767 -32767 + -32767 -32767 -32767 + -32767 -32767 -32767 + -32767 -32767 -32767 + 11 22 33 + -32767 -32767 -32767 + -32767 -32767 -32767 + -32767 -32767 -32767 + -32767 -32767 -32767 + -32767 -32767 -32767 + -32767 -32767 -32767 + -32767 -32767 -32767 + -32767 -32767 -32767 + -32767 -32767 -32767 + 100 200 300 + -32767 -32767 -32767 + 10 20 30 + 40 32767 -32768 + -32767 -32767 -32767 + -32767 -32767 -32767 + -32767 -32767 -32767 + -32767 -32767 -32767 + -32767 -32767 -32767 + -32767 -32767 -32767 + 11 22 33 + -32767 -32767 -32767 + -32767 -32767 -32767 + -32767 -32767 -32767 + -32767 -32767 -32767 + -32767 -32767 -32767 + -32767 -32767 -32767 + -32767 -32767 -32767 + -32767 -32767 -32767 + -32767 -32767 -32767 + + + + + + + + + + 180 + + + + + + + + + + + + + 100 200 300 + -32767 -32767 -32767 + 10 20 30 + 40 32767 -32768 + -32767 -32767 -32767 + -32767 -32767 -32767 + -32767 -32767 -32767 + -32767 -32767 -32767 + -32767 -32767 -32767 + -32767 -32767 -32767 + 11 22 33 + -32767 -32767 -32767 + -32767 -32767 -32767 + -32767 -32767 -32767 + -32767 -32767 -32767 + -32767 -32767 -32767 + -32767 -32767 -32767 + -32767 -32767 -32767 + -32767 -32767 -32767 + -32767 -32767 -32767 + + + + diff --git a/cdf38_1-dist/cdfjava/cdfml/testdtd.xml b/cdf38_1-dist/cdfjava/cdfml/testdtd.xml new file mode 100644 index 0000000..bacdd0a --- /dev/null +++ b/cdf38_1-dist/cdfjava/cdfml/testdtd.xml @@ -0,0 +1,374 @@ + + + + + + + + + + + + 5.3432 + 5.5 + 5.5 10.2 + 1 + 1 2 3 + -32768 + 1 2 + 3 + 4 5 + + 4294967295 + 4294967295 2147483648 + 65535 + 65535 65534 + 255 + 255 254 + + + 25-Apr-2002 00:00:00.000 + + + 13-May-2004 15:08:11.022.033.044.055 + + + + + + + + 20 + + + 90 + + + + 1 2 3 + + + + + + 0 0 5 + 15 25 35 + 100 128 255 + + + + + + + + + + 180 + + + + + + + + + + + + + 100 200 300 + -99 -99 -99 + 10 20 30 + 40 32767 -32768 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + 11 22 33 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + + + + + + 101 201 301 + 21 0 31 + 51 0 61 + 32767 0 65535 + 0 0 0 + 333 444 555 + + + + + + 110 210 310 410 510 610 + 10 20 40 50 7 8 + 90 95 96 97 32767 -32768 + + + + + + 10 20 40 50 7 8 9 10 90 95 96 97 98 99 80 85 + + + + + + 100 200 300 400 500 600 + 0 0 0 0 0 0 + 0 0 0 0 0 0 + 10 20 40 50 70 80 + 90 95 96 97 2147483648 4294967295 + + + + + + 100 128 255 + + + + + + + + + + + + + 55.5 0.0 66.6 + 0.0 0.0 0.0 + 0.0 0.0 0.0 + 0.0 0.0 0.0 + 0.0 0.0 0.0 + 666.66 777.77 888.88 + 0.0 0.0 0.0 + 0.0 0.0 0.0 + 0.0 0.0 0.0 + 0.0 0.0 0.0 + 96.5 97.5 98.5 + 100.5 110.6 120.7 + 200.5 210.6 220.7 + + + + + + 5.5 -0.0 6.6 + 9.5 -0.0 8.5 + 10.5 10.6 10.7 + 20.5 20.6 20.7 + 0.0 0.0 0.0 + 333.3 444.4 555.5 + + + + + + 55.55 + 66.66 + 0.0 + 0.0 + 0.0 + 999.99 + + + + + + 9.5 -0.0 8.5 + + + + + + 77.77 + + + + + + 0.0 0.0 0.0 + 18888.8 0.0 19999.9 + 0.0 0.0 0.0 + 0.0 0.0 0.0 + 0.0 0.0 0.0 + 333.333 444.444 555.555 + 10.5 10.6 10.7 + 20.5 20.6 20.7 + + + + + + + 13-May-2002 00:00:00.000 + + + + 05-Mar-1999 05:06:07.100 + 02-Jan-1998 03:04:05.666 + + + + + + + 13-May-2002 15:08:01.002.003.004.005 + + + + 29-Nov-2004 15:55:23.030.411.522.634 + 29-Dec-2004 16:56:24.031.411.522.634 + 29-Dec-2005 16:56:24.031.444.555.777 + + + + + + 88888 99999 + 1 -1 + 10 -10 + 9223372036854775807 -9223372036854775808 + + + + + + 2008-12-31T23:59:58.123456789 + 2008-12-31T23:59:59.123456789 + 2008-12-31T23:59:60.123456789 + 2009-01-01T00:00:00.123456789 + 2009-01-01T00:00:01.123456789 + 2009-01-01T00:00:02.123456789 + + + + + + + + + + 180 + + + + + + + + + + + + + 100 200 300 + -99 -99 -99 + 10 20 30 + 40 32767 -32768 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + 11 22 33 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + 100 200 300 + -99 -99 -99 + 10 20 30 + 40 32767 -32768 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + 11 22 33 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + + + + + + + + + + 180 + + + + + + + + + + + + + 100 200 300 + -99 -99 -99 + 10 20 30 + 40 32767 -32768 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + 11 22 33 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + + + + diff --git a/cdf38_1-dist/cdfjava/cdfml/testnew.cdf b/cdf38_1-dist/cdfjava/cdfml/testnew.cdf new file mode 100644 index 0000000000000000000000000000000000000000..d1f212cfd407ef1aca949f6c67c081bd12d0fb8a GIT binary patch literal 18231 zcmeHOYiwM_6~3F-CXVwUiIWiWxR9oal{nbhyi6YKdTl3$1VZdkXd}qRUMCy;2=*q_ z?GKhmKtNPLMM6%0@J5L80|b3Y&!=bI#q_?QU#s zLH)5DXYQFfGiUD1Ip3U_d-vw#r(VeOhKD^vq4i)WlR{Bk#v+YJnt(J7NhvfeR1xp( z?(XgJ8x!e--`v~Rok;u3;*HJK70cq)e!TbKKwoO#{BW_(UIuu@NL89F4I#y*^^H8Rcz@?CVTcK zyV5KC?TNmDu0&6Vzp8fKx;lSXYph~f3mf$$(|%2j&zsd?Of{{$cI>!tXIpezOKV%} zO5S4SmJ2VguFzSP&fB0mCRcsR6k876VfmJ&QeQ#SNxn+BVWG&gC$n{-MhM5*`mswa zAM-l6_$T1DO0MFT;T?Uw2a@gSoVqeBY{#65UzZ|M$g#cJZC8J)XP=+mpY#Ek^Ad*> zer!jJRd5|L?qMq%mjb6lG;zV?kan!S7R4CjG+7#(xOTj<^D+O9IQ1cGi~cFZ(3{t3;8+2@_T#PrKD1k!Z(&)Nb#7vgoDW z%d4VNu@PML4?;BxżqMP|8;LBANku)l>c4|Lb$Cxk z%7XV+;RZAi#qdJpRgtosRjW4+jZyJAj_M_%N_Fmv+C8$|M=g07Q}jH?Qeo}`)M5$? z2eYJ_AyaK+uI}$4p&n;B5vkx^b-1XHBFSVYaz&^vml*Q_>3!L;D6np8wm4B|%w@{0 zlKlmw`fdAD{XYIB{Qh(wLZ~!w<}gv`KNWS8kqXX%{fTZAT<7o#@*FpHDMiYW`&CdZJc-4-FK z9g(%9cJsV9fBycHFEofa3ht~Qqkkr3v^)CF1i_f945hB<~)11e`j&F6F5 z$<%-4%SS3(JrkG1!B+3C!|69l6EgbRtZ#Okl~3mb25~lv^23R)R7ZD8Fp_OmW;yO; z62q#FAWysLS}|@`d(dX2St4+)KbuxnqP77HTdUCXPWvtLf%PwrZEI=V9^-MPoXNHR z^DqSMc1r7iTdd{Ay;)q6Jbj4f%ud_LaM`o6OA>YTYw%KtZ8h%Iu~42wo0zyK2Q{yh zxHpE7FGSX+Ge0R*cPg3qf^R>SgC%joe+Q}0laf9!iBSABJd*g6wWaV>s++rv&TVH=q zqVrI;vRreUFmZ8b>}}*}H+7-99HMOKOv8l|B3%cZPPZx1b!JuOI$-Vz$l1;~pyNqyN&38Rn}gv19B`#2N!&5^}+lr3sjv_Wc9pS@Nm*Q;njqyyrJPmz{t?>CU5xaA!rYozwM!?Ld&`I zK%p*N`xFltxLgbSA?Uu_WZPImqy0SPIqzTORK1I@FzHu58KR2(ve9()BOglo6|xf~gT+ z`S>5W_Zm%J#A%F{TSG;n^2tcp%p~q5>oJ!cN)i?CqsO zITLMSPLZLEnBgmkT1)OztB;n;SZ06&aT!mSL+Ah`vX3qOGx9uUa}J=TiyU4k_7HLt zbp&jCL89zq4{c}8F^RqHz9m`)R0TUY&}ZBzZ8<;@H7+vS&~&$-|@ z3}4p3@kJs>8eI9Nhrijl^~#3Eo$D`av~m|8D~N|GB#sNTyxrkCpWtMMI@%(b8`}~e z<@?x83mBW2on!=jQY7CS4KtG!3d#R=a44@V-GHN1b(5ffh&6T6286bl__ zBUq^Y7V^Y`(AkgMjN!#jra?SpTL%l}8dex5zKnPh#O-{aTc6aPn=c=!Z1p_ZZ`>Hd znvfF{R%uKSl{&$J;l*$;Mek1~2M2uFQUJE@d8T+c;@;OvTc%EMS?|hw+$}${&krDPbzw>JQqxhQl_U-=MM{>UE zl^-+fZ$vv{f>>Zo6FeXX(tF_?J>!h0RNsw*^)I5Ck0g8D`d=XrGQ1d$rf2&lj_TH0 zov*KX7AOTzBm81jf43&?O3))DmGA|h0 zzGZ1F z+FItym&6Ylu|O%f8R1>frc(Dm6R)c7x#IYT^FJP2b;X2X!`Iw%&POZ{Z#ZoDiPs)8 zJiYHza+yaIT;f&30_2GqVuim|DD;rc?vF>$xb>C#lQ)es!klk@8h!}b7^J1P?%X#V zuJ;RYj5_u|)5Teres6ktJO10b)h@FuZDQg}C?hj31!+sws`=dZ8BONPM=Hx$z5vHB zSkK}2(olwf75I8%A->+g_Zg;arNyt4z1e_Q@%mHM{J-uib8iBdmC|?`@{FeZy>2E_ zDc|-sUJONk{K+N5P6{r!Cs1L?`7E;WHb`(l32rZe-8NKLI^U&wuJTDV<0{v&7gg3* zG|u;cP27EG1XV6L<^&pm++VkiKqrbq^L8V#oKrERLq~xf&$80^Kftfe#)ghVW%@Wq zo8-m@KKYE|TXbVb#Vf5^3SLboidS}0(D#M#YBUwE)GP`)eLL*n)hH`oPpMo0uSQw% zT6D~U*OK1F1pAj_SGl>h*Yu*6N6W3AcLBKTrL~K0vB$YFW6w{lfBNp@&%N$lySwtN z%D&2ZmBW8Kecs%gGH+Jyt-QJN=#;-iy$|oa_lfUHS71E5!2wSoDnS1{KjZ4pzUNVUy>#6y!D}5KOemA=G$Ag-tpLb Hj~)9DUs5q8 literal 0 HcmV?d00001 diff --git a/cdf38_1-dist/cdfjava/cdfml/testxsd.xml b/cdf38_1-dist/cdfjava/cdfml/testxsd.xml new file mode 100644 index 0000000..1955d62 --- /dev/null +++ b/cdf38_1-dist/cdfjava/cdfml/testxsd.xml @@ -0,0 +1,343 @@ + + + + + + + + + + + + 5.3432 + 5.5 + 5.5 10.2 + 1 + 1 2 3 + -32768 + 1 2 + 3 + 4 5 + + 4294967295 + 4294967295 2147483648 + 65535 + 65535 65534 + 255 + 255 254 + + + 25-Apr-2002 00:00:00.000 + + + 13-May-2004 15:08:11.022.033.044.055 + + + + + + + + 20 + + + 90 + + + + 1 2 3 + + + + + + 0 0 5 + 15 25 35 + 100 128 255 + + + + + + + + + + 180 + + + + + + + + + + + + + 100 200 300 + -99 -99 -99 + 10 20 30 + 40 32767 -32768 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + 11 22 33 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + + + + + + 101 201 301 + 21 0 31 + 51 0 61 + 32767 0 65535 + 0 0 0 + 333 444 555 + + + + + + 110 210 310 410 510 610 + 10 20 40 50 7 8 + 90 95 96 97 32767 -32768 + + + + + + 10 20 40 50 7 8 9 10 90 95 96 97 98 99 80 85 + + + + + + 100 200 300 400 500 600 + 0 0 0 0 0 0 + 0 0 0 0 0 0 + 10 20 40 50 70 80 + 90 95 96 97 2147483648 4294967295 + + + + + + 100 128 255 + + + + + + + + + + + + + 55.5 0.0 66.6 + 666.66 777.77 888.88 + 96.5 97.5 98.5 + 100.5 110.6 120.7 + 200.5 210.6 220.7 + + + + + + 5.5 -0.0 6.6 + 9.5 -0.0 8.5 + 10.5 10.6 10.7 + 20.5 20.6 20.7 + 0.0 0.0 0.0 + 333.3 444.4 555.5 + + + + + + 55.55 + 66.66 + 0.0 + 0.0 + 0.0 + 999.99 + + + + + + 9.5 -0.0 8.5 + + + + + + 77.77 + + + + + + 0.0 0.0 0.0 + 18888.8 0.0 19999.9 + 0.0 0.0 0.0 + 0.0 0.0 0.0 + 0.0 0.0 0.0 + 333.333 444.444 555.555 + 10.5 10.6 10.7 + 20.5 20.6 20.7 + + + + + + + 13-May-2002 00:00:00.000 + + + + 05-Mar-1999 05:00:00.000 02-Jan-1998 03:00:00.000 + + + + + + + 13-May-2002 15:08:01.002.003.004.005 + + + + 29-Nov-2004 15:55:23.030.411.522.634 + + + + + + + + + + 180 + + + + + + + + + + + + + 100 200 300 + -99 -99 -99 + 10 20 30 + 40 32767 -32768 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + 11 22 33 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + 100 200 300 + -99 -99 -99 + 10 20 30 + 40 32767 -32768 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + 11 22 33 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + + + + + + + + + + 180 + + + + + + + + + + + + + 100 200 300 + -99 -99 -99 + 10 20 30 + 40 32767 -32768 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + 11 22 33 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + -99 -99 -99 + + + + diff --git a/cdf38_1-dist/cdfjava/cdftools/CDFToolsDriver.jar b/cdf38_1-dist/cdfjava/cdftools/CDFToolsDriver.jar new file mode 100644 index 0000000000000000000000000000000000000000..5c03fc47edd91b188ce31d81fb257a9a9bd4c7b3 GIT binary patch literal 599299 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

4^ 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.RdOLFdz$1!Z8R>N9PjfC6kYc)^ZL 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 z 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

si0 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

q&@UhE8$lt9RlVt9Kag7@c#37sq3pHvOO1ny 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ࣞL2e6e`7nK~Ew>&k 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 z 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

Qn z)X!xWYQ2Ec?bR8mycJFNE{-^UDDz$aKDr4JF_ettMGJQ|!Qcn%Q6`_N$it&@6rG2^ zmCBcGk9~}%6H(hH^CGW2f>+6~ zfYTh^5?64QhzA!C=W>L0bP#s4 zWrP@B)$sbldGP6ichZu_5vM@&{D@9_PNDv)$64oY3`GY<2xHfK&tWuaG0KNkHRw== z#QXV5#HNI&l4XMkg8O^N7D&2h60bc?b7s#YljIK7)ePdqwlkqJ0w(Zf5I6Nr4?4FG zcXK+K@>^i->BG5I3YYvV=L5=%l$DnJ7tM<8e8GvS}zu3z#ETQf?rx>~h$lVBtT(^Jpje>$`KQhV{yPMiq zI+shbhv~lk>4m{sRaeuy{RQT(@jgxmJM1%yj8dbfgn|=fKZmUJFWK>3v~JX>)VZAI zqs+jX!CT7ILJ`KU5R)paG#wYJJ(?JLb=1WmOPBphemMS=?ZeW;X;t}@1Ts%Ls1rTU zs_LC3aK63$1RGfGPj; z#!1J2os>>0b`b076B)fFPZm;A?rK)0x3uv)r{dVlbJcTs_|iIGC@2u#@#haGofq8` zRU4ijeY}tdYc;YrxTLG{yNPb#iiWCbVPo`|_>=g%O9WJ*cDTf6K6zAbzm>3jWm8KbMRPFZBw%941R|;Mp4*(WJL9GF;lxB}J1=%r-e} zXuGNs-CdpNaMf^uLy1Lt#mGci)Mk0N^YVZQ_n4|P<7wjll%9Cc8+;BHOKh$(@>kLu zA9z$w31}y^cVt^RDDCIn)1jzyRF)#rfOODi$X_V_$yKtW1?wT?I;^5qnYFA87Qw`o z&lvel`)^jdE8DcPz1*Yo{#JHzNBByt_psgR{h9#9s+VYxP<^oL0fIr?oT$bBHX^U4N{18lkb9cl?44O_ciJxBK43 zb(&o%3ⅈWyW7w&3LAavjlk?VAk~iSy5g1#;ZxQr& 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 z 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 literal 0 HcmV?d00001 diff --git a/cdf38_1-dist/cdfjava/classes/cdfjava.jar b/cdf38_1-dist/cdfjava/classes/cdfjava.jar new file mode 100644 index 0000000000000000000000000000000000000000..8d771c360259eca5abe02ffe9e744d461b6fa534 GIT binary patch literal 113585 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

T!8h2+wX{)~rC?p9;apl`%r#Kst@B0z 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 E02(eUa{vGU literal 0 HcmV?d00001 diff --git a/cdf38_1-dist/cdfjava/classes/cdfml.jar b/cdf38_1-dist/cdfjava/classes/cdfml.jar new file mode 100644 index 0000000000000000000000000000000000000000..a45ec5b5ff2f593277949e859852e3a3b50ceffc GIT binary patch literal 45441 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∾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 YF6z6&7uf&AeEFRCAR!>QYyZ>wA34s#{{R30 literal 0 HcmV?d00001 diff --git a/cdf38_1-dist/cdfjava/classes/gson-2.8.6.jar b/cdf38_1-dist/cdfjava/classes/gson-2.8.6.jar new file mode 100644 index 0000000000000000000000000000000000000000..4765c4afeb2cdfa224422b174a4e5d94ffc9f714 GIT binary patch literal 240255 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 LEN=v=6@>o*Edn-* literal 0 HcmV?d00001 diff --git a/cdf38_1-dist/cdfjava/classes/javax.json-1.0.4.jar b/cdf38_1-dist/cdfjava/classes/javax.json-1.0.4.jar new file mode 100644 index 0000000000000000000000000000000000000000..09967d8158efd05ffaf33d45d48544f680ef0d52 GIT binary patch literal 85147 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 literal 0 HcmV?d00001 diff --git a/cdf38_1-dist/cdfjava/examples/CreateCDF.java b/cdf38_1-dist/cdfjava/examples/CreateCDF.java new file mode 100644 index 0000000..6247b1b --- /dev/null +++ b/cdf38_1-dist/cdfjava/examples/CreateCDF.java @@ -0,0 +1,897 @@ +/****************************************************************************** +* Copyright 1996-2013 United States Government as represented by the +* Administrator of the National Aeronautics and Space Administration. +* All Rights Reserved. +******************************************************************************/ + +import java.io.*; +import java.text.*; +import java.util.*; +import gsfc.nssdc.cdf.*; +import gsfc.nssdc.cdf.util.*; + +/** + * This test program demonstrates how to create a single-file CDF + * called test.cdf. It also copies a variable along with data out of + * test.cdf and creates a new single-file CDF called test1.cdf. + * + * Thie program demonstrates the following techniques: + * + * - how to create a variable + * - how to create a global attribute + * - how to create a variable attribute + * - how to create a global variable attribute entry + * - how to create a variable attribute entry + * - how to add data to a variable + * - how to delete a variable attribute + * - how to rename a variable + * - how to rename a variable attribute + * - how to copy a variable with or without data + * - how to delete data (records) out of a variable + * - how to set options that are available with a CDF file and a variable + */ + +public class CreateCDF implements CDFConstants{ + + public static void main(String[] args) { + CDF cdf = null, + cdf1 = null; + + try { + + /******************************************************************/ + /* If the file to be created is a multifile (not a single file), */ + /* the following restrictions apply: */ + /* */ + /* - CDF file extension is not allowed (i.e. .cdf) */ + /* - Compression and sparse records are not allowed */ + /* - Deleting a variable is not allowed */ + /******************************************************************/ + File cdfFile = new File("test.cdf"); + if (cdfFile.exists()) cdfFile.delete(); + + cdfFile = new File("test1.cdf"); + if (cdfFile.exists()) cdfFile.delete(); + + //CDF.setFileBackward(BACKWARDFILEoff); + cdf = CDF.create("test"); + cdf1 = CDF.create("test1"); + + // cdf.setFormat(SINGLE_FILE); // Set to signle-file CDF + cdf.setChecksum(MD5_CHECKSUM); + + /*************************************************/ + /* Set the information/warning message flag */ + /* - By default, this flag is turned off */ + /* - setInfoWarningOn() turns on the flag */ + /* - setInfoWarningOff() turns off the flag */ + /*************************************************/ + // cdf.setInfoWarningOn(); + + /*******************************************/ + /* Create global and variable attributes */ + /*******************************************/ + Attribute + project = Attribute.create(cdf, "Project", GLOBAL_SCOPE), + pi = Attribute.create(cdf, "PI", GLOBAL_SCOPE), + test = Attribute.create(cdf, "Test", GLOBAL_SCOPE), + testDate = Attribute.create(cdf, "TestDate", GLOBAL_SCOPE), + ep16TestDate = Attribute.create(cdf, "epTestDate", GLOBAL_SCOPE), + utf8 = Attribute.create(cdf, "utf8", GLOBAL_SCOPE), + + validMin = Attribute.create(cdf, "VALIDMIN", VARIABLE_SCOPE), + validMax = Attribute.create(cdf, "VALIDMAX", VARIABLE_SCOPE), + snafu = Attribute.create(cdf, "snafu", VARIABLE_SCOPE), + dummy = Attribute.create(cdf, "dummy", VARIABLE_SCOPE), + myAttr = Attribute.create(cdf, "myAttr", VARIABLE_SCOPE); + + System.out.println("Created attributes."); + + /**********************/ + /* Create variables */ + /**********************/ + long numElements = 1, + numDims = 1, + dimVary[] = {VARY}, + noDimVary[] = {NOVARY}, + dimVariance1[] = {VARY, VARY}, + dimVariance2[] = {VARY, NOVARY}; + + Variable + latitude = Variable.create(cdf, "Latitude", + CDF_INT1, + 1, 1, new long [] {3}, + NOVARY, /* recVary */ + new long [] {VARY}), + + latitude1 = Variable.create(cdf, "Latitude1", + CDF_UINT1, + 1, 1, new long [] {3}, + VARY, + new long [] {VARY}), + + longitude = Variable.create(cdf, "Longitude", + CDF_INT2, + numElements, numDims, + new long [] {3}, /* dimSizes */ + VARY, /* recVary */ + new long [] {VARY}), + + longitude1 = Variable.create(cdf, "Longitude1", + CDF_UINT2, + numElements, numDims, + new long [] {3}, /* dimSizes */ + VARY, /* recVary */ + dimVary), /* dimVary */ + + delta = Variable.create(cdf, "Delta", + CDF_INT4, + 1, 2, new long [] {3,2}, + VARY, dimVariance1), + + volume = Variable.create(cdf, "volume", + CDF_INT4, + 1, 3, new long [] {2,4,2}, + VARY, new long [] {VARY, VARY, VARY}), + + time = Variable.create(cdf, "Time", + CDF_UINT4, + 1, 2, new long [] {3,2}, + VARY, dimVariance1), + + dvar = Variable.create(cdf, "dvar", CDF_INT2, + 1, 1, new long [] {3}, + NOVARY, + new long [] {NOVARY}), + + name = Variable.create(cdf, "Name", + CDF_CHAR, + 10, 1, new long [] {2}, + VARY, + new long [] {VARY}), + + temp = Variable.create(cdf, "Temp", CDF_FLOAT, + 1, 1, new long [] {3}, + VARY, + new long [] {VARY}), + + temp1 = Variable.create(cdf, "Temp1", CDF_REAL4, + 1, 1, new long [] {3}, + VARY, + new long [] {VARY}), + + temp2 = Variable.create(cdf, "Temperature", CDF_FLOAT, + 1, 0, new long [] {1}, + VARY, + new long [] {NOVARY}), + + temp3 = Variable.create(cdf, "Temperature1", CDF_FLOAT, + 1, 1, new long [] {3}, + NOVARY, + new long [] {VARY}), + + temp4 = Variable.create(cdf, "Temperature2", CDF_FLOAT, + 1, 0, new long [] {1}, + NOVARY, + new long [] {NOVARY}), + + dp = Variable.create(cdf, "dp", CDF_DOUBLE, + 1, 1, new long [] {3}, + VARY, + new long [] {VARY}), + + ep = Variable.create(cdf, "ep", CDF_EPOCH, + 1, 0, new long [] {0}, + VARY, + new long [] {NOVARY}), + + ep16 = Variable.create(cdf, "ep16", CDF_EPOCH16, + 1, 0, new long [] {0}, + VARY, + new long [] {NOVARY}), + + newI8 = Variable.create(cdf, "newI8", CDF_INT8, + 1, 1, new long [] {2}, + VARY, + new long [] {VARY}), + + tt2000 = Variable.create(cdf, "tt2000", CDF_TIME_TT2000, + 1, 0, new long [] {0}, + VARY, + new long [] {NOVARY}), + + dummyVar = Variable.create(cdf, "DummyVar", + CDF_EPOCH, + 1, 0, new long [] {0}, + VARY, + new long [] {NOVARY}); + + System.out.println("Created variables."); + + /*********************************/ + /* Set miscelleneous settings. */ + /*********************************/ + // cdf.setCompression(RLE_COMPRESSION, new long[] {0}); + cdf.setMajority(ROW_MAJOR); /* Default is ROW_MAJOR */ + // cdf.setEncoding(SUN_ENCODING); + + cdf.selectNegtoPosfp0(NEGtoPOSfp0off); + cdf.selectCDFCacheSize(400L); + cdf.selectCompressCacheSize(500L); + cdf.selectStageCacheSize(600L); + + System.out.println("Mode: "+ + cdf.confirmzMode()); + System.out.println("Neg -0.0 to 0.0: "+ + cdf.confirmNegtoPosfp0()); + System.out.println("CDF Cache size: "+ + cdf.confirmCDFCacheSize()); + System.out.println("Compression Cache Size: "+ + cdf.confirmCompressCacheSize()); + System.out.println("Stage Cache Size: "+ + cdf.confirmStageCacheSize()); + System.out.println("\nDefined CDF file options..."); + + dvar.setDimVariances (new long [] {VARY}); + + longitude.selectCacheSize(700L); + longitude.setCompression(GZIP_COMPRESSION, new long[] {9}); +// longitude.setPadValue(new Short((short) -99)); + longitude.setBlockingFactor(130L); + longitude.setInitialRecords(20L); +System.out.println("pad value="+longitude.getPadValue()+" status="+cdf.getStatus()+" confirm="+longitude.confirmPadValue()); + + // Only applicable to compressed z variables + longitude.selectReservePercent(15L); + + System.out.println("Cache Size (longitude): "+ + longitude.confirmCacheSize()); + System.out.println("Reserver Percentage (longitude): "+ + longitude.confirmReservePercent()); + + temp.setSparseRecords(PAD_SPARSERECORDS); + time.setBlockingFactor(60); +// ep.setSparseRecords(PREV_SPARSERECORDS); + + // Only applicable to uncompressed Z vars in a single-file CDF. + ep.allocateRecords(3L); + + long firstRec = 9, lastRec = 20; + time.allocateBlock(firstRec, lastRec); + + System.out.println ("time.getAllocatedFrom(4L): "+ + time.getAllocatedFrom(4L)); + System.out.println ("time.getAllocatedTo(13L): "+ + time.getAllocatedFrom(13L)); + + /*******************************************/ + /* Add entries to global attributes */ + /* */ + /* NOTE: entry value must be a Java object */ + /*******************************************/ + Double entryValue = new Double(5.3432); + + System.out.println("Adding global attribute entries..."); + + Entry.create(project, 0, CDF_CHAR, "Using the CDFJava API"); + Entry.create(pi, 3, CDF_CHAR, "Ernie Els"); + System.out.println("\tchars completed."); + + Entry.create(test, 0, CDF_DOUBLE, entryValue); + Entry.create(test, 1, CDF_DOUBLE, new double []{5.3, 2.3}); + System.out.println("\tdoubles completed."); + + Entry.create(test, 2, CDF_FLOAT, new Float(5.5)); + Entry.create(test, 3, CDF_FLOAT, + new float [] {(float)5.5,(float)10.2}); + System.out.println("\tfloats completed."); + + Entry.create(test, 4, CDF_INT1, new Byte((byte)1)); + Entry.create(test, 5, CDF_INT1, + new byte [] {(byte) 1, (byte)2, (byte)3}); + System.out.println("\tbytes completed."); + + Entry.create(test,6,CDF_INT2,new Short((short)-32768)); + Entry.create(test, 7, CDF_INT2, + new short [] {(short)1,(short)2}); + System.out.println("\tshorts completed."); + + Entry.create(test, 8, CDF_INT4, new Integer(3)); + Entry.create(test, 9, CDF_INT4, new int [] {4,5}); + System.out.println("\tintegers completed."); + + Entry.create(test, 10, CDF_CHAR, "This is a string"); + System.out.println("\tString completed."); + + Entry.create(test,11,CDF_UINT4, new Long(4294967295L)); + Entry.create(test,12,CDF_UINT4, + new long[] {4294967295L,2147483648L}); + System.out.println("\tUINT4 completed."); + + Entry.create(test,13,CDF_UINT2,new Integer(65535)); + Entry.create(test,14,CDF_UINT2,new int[]{65535,65534}); + System.out.println("\tUINT2 completed."); + + Entry.create(test,15,CDF_UINT1, new Short((short)255)); + Entry.create(test,16,CDF_UINT1, new short[] {255,254}); + System.out.println("\tUINT1 completed."); + + Entry.create(test,17,CDF_INT8, new Long(23456789010L)); + System.out.println("\tINT8 completed."); + + double testDateData = Epoch.compute(2002, 4, 25, 0, 0, 0, 0); + Entry.create(testDate, 1, CDF_EPOCH, new Double(testDateData)); + System.out.println("\tEPOCH completed."); + + double[] ep16Data = new double[2]; + double ep_status = Epoch16.compute(2004, 5, 13, 15, 8, + 11, 22, 33, 44, 55, ep16Data); + Entry.create(ep16TestDate, 0, CDF_EPOCH16, ep16Data); + System.out.println("\tEPOCH16 completed."); + + long testTT2000 = CDFTT2000.compute(2008, 2, 4, 6, 8, 10, 12, 14, 16); + Entry.create(testDate, 2, CDF_TIME_TT2000, + new Long(testTT2000)); + System.out.println("\tEPOCH completed."); + + String spdf1 = new String("ASCII: ABCDEFG"); + String spdf2 = new String("Latin1: ©æêü÷Ƽ®¢¥"); + String spdf3 = new String("Chinese: 社安"); + String spdf4 = new String("Other: ႡႢႣႤႥႦ"); + Entry.create(utf8, 0, CDF_CHAR, spdf1); + Entry.create(utf8, 1, CDF_CHAR, spdf2); + Entry.create(utf8, 2, CDF_CHAR, spdf3); + Entry.create(utf8, 3, CDF_CHAR, spdf4); + System.out.println("\tUTF8 completed."); + + /************************************/ + /* Add variable attribute entries */ + /************************************/ + System.out.println("Adding variable attribute entries..."); + + // Entry.create(validMin, longitude.getID(), CDF_INT2, + // new Short((short)10)); + Entry.create(validMin, longitude.getID(), CDF_INT2, + new Short((short)-10)); + latitude.putEntry(validMin, CDF_INT2, new Short((short)20)); + System.out.println("\tAdded VALIDMIN entries."); + + longitude.putEntry(validMax, CDF_INT2, new Short((short)180)); + latitude.putEntry(validMax, CDF_INT2, new Short((short)90)); + System.out.println("\tAdded VALIDMAX entries."); + + longitude.putEntry(snafu, CDF_CHAR, "test1"); + System.out.println("\tAdded snafu for Longitude."); + + double testDateData1 = Epoch.compute(2002, 5, 13, 0, 0, 0, 0); + ep.putEntry(dummy, CDF_EPOCH, new Double(testDateData1)); + System.out.println("\tAdded dummy for ep."); + + ep_status = Epoch16.compute(2002L, 5L, 13L, 15L, 8L, + 1L, 2L, 3L, 4L, 5L, ep16Data); + ep16.putEntry(dummy, CDF_EPOCH16, ep16Data); + System.out.println("\tAdded dummy for ep16."); + + longitude.putEntry(dummy, CDF_CHAR, "test2"); + System.out.println("\tAdded dummy for Longitude."); + + long testDateData2 = CDFTT2000.compute(2010, 5, 13, 10, 20, 30, 40, + 50, 60); + tt2000.putEntry(dummy, CDF_TIME_TT2000, new Long(testDateData2)); + System.out.println("\tAdded dummy for tt2000."); + + newI8.putEntry(validMin, CDF_INT8, new Long(-12345678900L)); + newI8.putEntry(validMax, CDF_INT8, new Long(12345678900L)); + System.out.println("\tAdded VALIDMAX/VALIBMIN entries for newI8."); + + char ch = 'a'; + String myStr = String.valueOf(ch); + longitude.putEntry(myAttr, CDF_CHAR, myStr); + System.out.println("\tAdded myAttr for Longitude."); + + /*************************/ + /* Delete an attribute */ + /*************************/ +// dummy.delete(); + + /***********************/ + /* Add variable data */ + /***********************/ + long recNum = 0, + recCount = 2, + recInterval = 1, + indicies[] = {0}, + dimIndicies[] = {0}, + dimCounts[] = {3}, + dimIntervals[] = {1}; + + System.out.println("Adding variable data..."); + + /***************************/ + /* Add data to longitude */ + /***************************/ + long status; + short [][] longitudeData = {{10, 20, 30}, + {40, 32767, -32768}}; + + longitude.putSingleData(recNum, indicies, new Short((short)100)); + status = cdf.getStatus(); + if (status != CDF_OK) { + String statusText = CDF.getStatusText(status); + System.out.println (statusText); + } + + longitude.putSingleData(0L, new long[] {1}, new Short((short)200)); + longitude.putSingleData(0L, new long[] {2}, new Short((short)300)); + System.out.println("\tAdded a single longitude variable data."); + + recNum = 2; + longitude.putHyperData(recNum, recCount, recInterval, + dimIndicies, dimCounts, dimIntervals, + longitudeData); + System.out.println("\tAdded a hyperput longitude variable data."); + + recNum = 10; + longitude.putRecord (recNum, new short[] {11, 22, 33}); + System.out.println("\tAdded a single longitude variable data."); + + /****************************/ + /* Add data to longitude1 */ + /****************************/ + int [][] longitude1Data = {{21, 31}, + {51, 61}, + {32767, 65535}}; + + longitude1.putSingleData(0L, indicies, new Integer((int)101)); + longitude1.putSingleData(0L, new long[] {1}, new Integer((int)201)); + longitude1.putSingleData(0L, new long[] {2}, new Integer((int)301)); + System.out.println("\tAdded a single longitude1 variable data."); + + recNum = 1; + dimIntervals[0] = 2; + longitude1.putHyperData(recNum, 3, recInterval, + dimIndicies, new long[] {2}, + dimIntervals, + longitude1Data); + System.out.println("\tAdded a hyperput longitude1 variable data."); + + /**************************/ + /* Add data to latitude */ + /**************************/ + byte [][] latitudeData = { {15, 25, 35}, + {45, 127, -128} }; + + latitude.putSingleData(0L, indicies, new Byte((byte)1)); + latitude.putSingleData(0L, new long[] {1}, new Byte((byte)2)); + latitude.putSingleData(0L, new long[] {2}, new Byte((byte)3)); + System.out.println("\tAdded a single latitude variable data."); + + /***************************/ + /* Add data to latitude1 */ + /***************************/ + short [][] latitude1Data = { {15, 25, 35}, + {100, 128, 255} }; + + latitude1.putSingleData(0L, new long[] {2}, new Short((short)5)); + System.out.println("\tAdded a single latitude1 variable data."); + + // This record will overwrite the first record + + recNum = 1; + recCount = 2; + latitude1.putHyperData(recNum, recCount, recInterval, + new long[] {0}, new long[] {3}, + new long[] {1}, latitude1Data); + System.out.println("\tAdded a hyperput latitude1 variable data."); + + /***********************/ + /* Add data to Delta */ + /***********************/ + int [][][] deltaData = { {{10,20}, {40,50}, {7, 8}}, + {{90,95},{96,97}, {32767, -32768}} + }; + delta.putSingleData(0L, new long[] {0,0}, new Integer((int)110)); + delta.putSingleData(0L, new long[] {0,1}, new Integer((int)210)); + delta.putSingleData(0L, new long[] {1,0}, new Integer((int)310)); + delta.putSingleData(0L, new long[] {1,1}, new Integer((int)410)); + delta.putSingleData(0L, new long[] {2,0}, new Integer((int)510)); + delta.putSingleData(0L, new long[] {2,1}, new Integer((int)610)); + + delta.putHyperData(1L, 2L, 1L, new long[] {0,0}, new long[] {3,2}, + new long[] {1,1}, deltaData); + + System.out.println("\tAdded delta data."); + + /************************/ + /* Add data to Volume */ + /************************/ + int [][][] volumeData = { {{10,20}, {40,50}, {7, 8}, {9,10}}, + {{90,95}, {96,97}, {98, 99}, {80,85}} + }; + volume.putHyperData(0L, 1L, 1L, + new long[] {0,0,0}, // dimension indicies + new long[] {2,4,2}, // dimension sizes + new long[] {1,1,1}, // dimension interval + volumeData); + + System.out.println("\tAdded volume data."); + + /**********************/ + /* Add data to Time */ + /**********************/ + long [][][] timeData = {{{10,20},{40,50},{70, 80}}, + {{90,95},{96,97},{2147483648L,4294967295L}} + }; + time.putSingleData(0L, new long[] {0,0}, new Long((long)100)); + time.putSingleData(0L, new long[] {0,1}, new Long((long)200)); + time.putSingleData(0L, new long[] {1,0}, new Long((long)300)); + time.putSingleData(0L, new long[] {1,1}, new Long((long)400)); + time.putSingleData(0L, new long[] {2,0}, new Long((long)500)); + time.putSingleData(0L, new long[] {2,1}, new Long((long)600)); + + time.putHyperData(5L, 2L, 1L, new long[] {0,0}, new long[] {3,2}, + new long[] {1,1}, timeData); + + System.out.println("\tAdded time data."); + + /**********************/ + /* Add data to dvar */ + /**********************/ + short [][] dvarData = {{15, 25, 35}, + {100, 128, 255} }; + + dvar.putSingleData(0L, new long[] {0}, new Short((short)5)); + dvar.putSingleData(1L, new long[] {1}, new Short((short)6)); + System.out.println("\tAdded a single dvar variable data."); + + recNum = 1; + recCount = 2; + dimIntervals[0] = 1; + dvar.putHyperData(recNum, recCount, recInterval, + dimIndicies, dimCounts, dimIntervals, + dvarData); + System.out.println("\tAdded a hyperput latitude1 variable data."); + + /*********************/ + /* Add String data */ + /*********************/ + name.setPadValue(new String("abc")); + String [] ndata = new String[2]; + ndata[0] = "abcd"; + ndata[1] = "bcdefghij"; + name.putSingleData(0L, new long[] {0}, new String("123456789")); + name.putSingleData(0L, new long[] {1}, new String("13579")); + + System.out.println("\tAdded a single string data."); + + name.putHyperData(1L, 1L, 1L, + new long[] {0}, new long[] {2}, new long[] {1}, + ndata); + + System.out.println("\tAdded hyperput name data."); + + /*******************/ + /* Add Temp data */ + /*******************/ + float [][] tempData = {{(float)96.5, (float)97.5, (float)98.5}, + {(float)100.5, (float)110.6, (float)120.7}, + {(float)200.5, (float)210.6, (float)220.7}}; + + temp.putSingleData(0L, new long[] {0}, new Float("55.5")); + temp.putSingleData(0L, new long[] {2}, new Float("66.6")); + + System.out.println("\tAdded a single temp data."); + + temp.putHyperData(10L, 3L, 1L, + new long[] {0}, new long[] {3}, new long[] {1}, + tempData); + + System.out.println("\tAdded hyperput temp data."); + + /********************/ + /* Add Temp1 data */ + /********************/ + float [][] temp1Data = {{(float)10.5, (float)10.6, (float)10.7}, + {(float)20.5, (float)20.6, (float)20.7}}; + + temp1.putSingleData(0L, new long[] {0}, new Float(5.5)); + temp1.putSingleData(0L, new long[] {1}, new Float(-0.0)); + temp1.putSingleData(0L, new long[] {2}, new Float(6.6)); + + System.out.println("\tAdded a single temp1 data."); + + float temp1Rec[] = {(float)9.5, (float)-0.0, (float)8.5}; + temp1.putRecord(1L, temp1Rec); + + temp1.putHyperData(2L, 2L, 1L, + new long[] {0}, new long[] {3}, new long[] {1}, + temp1Data); + + System.out.println("\tAdded hyperput temp1 data."); + + /********************************************/ + /* Add Temp2 data - scalar Record Varying */ + /********************************************/ + temp2.putScalarData(0L, new Float("55.55")); + temp2.putScalarData(1L, new Float("66.66")); + + System.out.println("\tAdded a scalar temp2 data."); + + /********************/ + /* Add Temp3 data */ + /********************/ + temp3.putRecord(temp1Rec); + + System.out.println("\tAdded a non-scalar temp3 data."); + + /************************************************/ + /* Add Temp4 data - scalar Non-Record Varying */ + /************************************************/ + temp4.putScalarData(new Float("77.77")); + + System.out.println("\tAdded a scalar temp4 data."); + + /*****************/ + /* Add dp data */ + /*****************/ + double [][] dpData = {{(double)9.5, (double)7.5, (double)8.5}, + {(double)10.5, (double)10.6, (double)10.7}, + {(double)20.5, (double)20.6, (double)20.7}}; + + dp.putSingleData(1L, new long[] {0}, new Double("18888.8")); + dp.putSingleData(1L, new long[] {2}, new Double("19999.9")); + + System.out.println("\tAdded a single dp data."); + + dp.putHyperData(5L, 3L, 1L, + new long[] {0}, new long[] {3}, new long[] {1}, + dpData); + + System.out.println("\tAdded hyperput dp data."); + + /*****************/ + /* Add ep data */ + /*****************/ + double epData = Epoch.compute(1999, 3, 5, 5, 6, 7, 100), + epData1 = Epoch.compute(1998, 1, 2, 3, 4, 5, 666); + String e0 = Epoch.encode(epData1); + double p0 = Epoch.toParse(e0); + + ep.putSingleData(0L, new long[] {0}, new Double(epData)); + ep.putSingleData(1L, new long[] {0}, new Double(p0)); + + System.out.println("\tAdded putSingleData ep data."); + + /*******************/ + /* Add ep16 data */ + /*******************/ + ep_status = Epoch16.compute(2004, 11, 29, /* yyyy-mm-dd */ + 15, 55, 23, /* hh-mm-ss */ + 30, /* millisecond */ + 411, /* microsecond */ + 522, /* nanosecond */ + 634, /* picosecond */ + ep16Data); /* CDF_EPOCH16 data */ + ep16.putSingleData(0L, new long[] {0}, ep16Data); + + ep_status = Epoch16.compute(2004, 12, 29, /* yyyy-mm-dd */ + 16, 56, 24, /* hh-mm-ss */ + 31, /* millisecond */ + 411, /* microsecond */ + 522, /* nanosecond */ + 634, /* picosecond */ + ep16Data); /* CDF_EPOCH16 data */ + ep16.putSingleData(1L, new long[] {0}, ep16Data); + + ep_status = Epoch16.compute(2005, 12, 29, /* yyyy-mm-dd */ + 16, 56, 24, /* hh-mm-ss */ + 31, /* millisecond */ + 444, /* microsecond */ + 555, /* nanosecond */ + 777, /* picosecond */ + ep16Data); /* CDF_EPOCH16 data */ + ep16.putSingleData(2L, new long[] {0}, ep16Data); + + System.out.println("\tAdded putSingleData ep16 data."); + + /********************/ + /* Add newI8 data */ + /********************/ + + long [][] i8Data = {{1L, -1L}, + {10L, -10L}, + {Long.MAX_VALUE, Long.MIN_VALUE}}; + + newI8.putSingleData(0L, new long[] {0}, new Long(88888L)); + newI8.putSingleData(0L, new long[] {1}, new Long(99999L)); + + System.out.println("\tAdded a single newI8 data."); + + newI8.putHyperData(1L, 3L, 1L, + new long[] {0}, new long[] {2}, new long[] {1}, + i8Data); + + System.out.println("\tAdded hyperput newI8 data."); + + /*********************/ + /* Add tt2000 data */ + /*********************/ + + String dateTime = new String("2015-06-30T23:59:58.123456789"); + long [] nanosecs = new long[5]; + long nansecSinceJ2000; + try { + nansecSinceJ2000 = CDFTT2000.toParse(dateTime); + } catch (CDFException ex) { + nansecSinceJ2000 = 0; + } + int ix; + for (ix = 0; ix < 5; ++ix) { + nanosecs[ix] = nansecSinceJ2000 + (ix + 1) * 1000000000L; + } + + tt2000.putSingleData(0L, new long[] {0}, new Long(nansecSinceJ2000)); + + System.out.println("\tAdded a single tt2000 data."); + + tt2000.putHyperData(1L, 5L, 1L, + new long[] {0}, new long[] {1}, new long[] {1}, + nanosecs); + + System.out.println("\tAdded hyperput tt2000 data."); + + /************************************************************/ + /* Initiate a record write for a group of CDF variables. */ + /* Six (6) variables are involved in this data put function */ + /* and the 6th record for each variable is written. */ + /* Note: All data elements in each variable's record object */ + /* should be fully provided. Otherwise, expect to have*/ + /* bad data at the missing element(s) in the record. */ + /************************************************************/ + + String[] strVars = {"Longitude1", // variable names in CDF + "Temp1", + "dp", + "Temp", + "Temperature"}; + // long[] numVars = { 3, 9, 13, 15, 8, 10}; // variable IDs + + /* Prepare the record objects, every object holds full */ + /* element data for each individual variable. */ + /* Longitude1 -- data type: CDF_UINT2 dimensionality: 1:[3] */ + int[] longitude1_data = {333, 444, 555}; + + /* Temp1 -- data type: CDF_REAL4 dimensionality: 1:[3] */ + float[] temp1_data = {(float)333.3, (float)444.4, (float)555.5}; + + /* dp -- data type: CDF_DOUBLE dimensionality: 1:[3] */ + double[] dp_data = {333.333, 444.444, 555.555}; + + /* Temp -- data type: CDF_FLOAT dimensionality: 1:[3] */ + float[] temp_data = {(float)666.66, (float)777.77, (float)888.88}; + + /* Temperature -- data type: CDF_FLOAT dimensionality: 0:[] */ + Float temperature_data = new Float((float)999.99); + + /* record, the Vector holding the record objects */ + /* for writing to the CDF. */ + + Vector record = new Vector(); + record.add(longitude1_data); + record.add(temp1_data); + record.add(dp_data); + record.add(temp_data); + record.add(temperature_data); + + cdf.putRecord(5L, strVars, record); // Write a record to record #6 + + System.out.println("\tAdded a record data (Logitude1, Temp1, "+ + "dp, Temp, Temperature)."); + + /****************************************/ + /* Rename a variable and an attribute */ + /****************************************/ + dvar.rename("foo"); + System.out.println("Renamed a variable."); + + validMin.rename("validmin"); + System.out.println("Renamed an attribute."); + + /**************************************/ + /* Get the attribute name and scope */ + /**************************************/ + String scope; + if (project.getScope() == GLOBAL_SCOPE) + scope = "global"; + else + scope = "variable"; + System.out.println ("Attribute 'project': \n"+ + "\tname: "+project.getName()+ + "\n\tscope: "+scope); + + /************************************************/ + /* Copy a variable - this only copies metadata */ + /************************************************/ + + // The current CDF file MUST be saved first (by calling the save() + // method) before 'copying/duplicating data records' operation is + // performed. Otherwise the program will either fail or produce + // undesired results. + cdf.save(); + + longitude.copy("longitude_copy"); + System.out.println("Copied a variable."); + + // Get the variable just copied and set its record variance. + Variable long_copy; + long_copy = cdf.getVariable("longitude_copy"); + // long_copy.setRecVariance(NOVARY); + + // Copy the 'longitude' variable to 'longitude_copy' and put + // 'longitude_copy" into test1.cdf. + + longitude.copy(cdf1,"longitude_copy"); + System.out.println("Copied a variable into another CDF."); + + longitude.copyDataRecords(long_copy); + longitude.concatenateDataRecords(long_copy); + + /***************************************************************/ + /* Duplicate a variable */ + /* - copies everything including metadata, data, and */ + /* other settings such as blocking factor, compression, */ + /* sparseness, and pad value */ + /***************************************************************/ + cdf.save(); + + longitude.duplicate("longitude_dup"); + longitude.duplicate(cdf1, "longitude_dup"); + + /***********************/ + /* Delete a variable */ + /***********************/ + dummyVar.delete(); + System.out.println("Deleted a variable."); + + /****************************************/ + /* Delete a variable and global entry */ + /****************************************/ + // validMin.deleteEntry(latitude); + System.out.println("Deleted a variable entry."); + + long entryID = 1; + test.deleteEntry(entryID); + System.out.println("Deleted a global entry."); + + /**********************************************************/ + /* For variables with sparse and/or compressed records, */ + /* the CDF file must be saved first before records can */ + /* be properly deleted. */ + /* */ + /* NOTE: It's always safe to save a CDF file, before */ + /* deleting any variable records. */ + /**********************************************************/ + cdf.save(); + + /**********************/ + /* Delete record(s) */ + /**********************/ + firstRec = 1; + lastRec = 2; + time.deleteRecords(firstRec, lastRec); + + /************************************/ + /* This should throw an exception */ + /************************************/ + // Attribute badAttribute; + // badAttribute = Attribute.create(cdf, "Project", GLOBAL_SCOPE); + cdf.close(); + cdf1.close(); + System.out.println("** Tested successfully **"); + + } catch (Exception e) { + System.out.println("A bad thing happened on the way to the CDF."); + e.printStackTrace(); + } + } +} diff --git a/cdf38_1-dist/cdfjava/examples/ReadCDF.java b/cdf38_1-dist/cdfjava/examples/ReadCDF.java new file mode 100644 index 0000000..b8542e1 --- /dev/null +++ b/cdf38_1-dist/cdfjava/examples/ReadCDF.java @@ -0,0 +1,679 @@ +/****************************************************************************** +* Copyright 1996-2013 United States Government as represented by the +* Administrator of the National Aeronautics and Space Administration. +* All Rights Reserved. +******************************************************************************/ + +import java.io.*; +import java.text.*; +import java.util.*; +import java.lang.reflect.*; +import gsfc.nssdc.cdf.*; +import gsfc.nssdc.cdf.util.*; + +/** + * This program demonstrates how to read the contents of test.cdf created + * by CreateCDF.java in this directory. + */ + +public class ReadCDF implements CDFConstants{ + + public static void main(String[] args) { + String fileName = "test"; + int maxVarNameLength = 22; + int ii, jj; + CDF cdf; + + jj = args.length; + if (jj == 0) jj = 1; + + try { + + System.out.println("CDF Library version: "+CDF.getLibraryVersion()+"\n"); +/* + CDF.setValidate (VALIDATEFILEoff); +*/ + } catch (CDFException vax) { + System.out.println("*** Error... "+vax); + System.exit(1); + } + + for (ii = 0; ii < jj; ++ii) { + if (args.length != 0) fileName = args[ii]; + if (ii > 0) + System.out.println(""); + System.out.println("Reading " + fileName + "...:\n"); + try { + cdf = null; + cdf = CDF.open(fileName, READONLYon); + if (cdf.getStatus() != CDF_OK) + { + if (cdf.getStatus() == CHECKSUM_ERROR) + System.out.println("*** Checksum failed... the cdf file is corrupted...\n"); + if (cdf != null) cdf.close(); + } else { + + /************************************************************/ + /* If a decoding method is not specified when a CDF file is */ + /* opened, the CDF libaray knows what encoding method was */ + /* used to create the CDF file. */ + /* */ + /* Decoding method should be specified only if one needs */ + /* to translate data from one platform to another. */ + /************************************************************/ + // cdf.selectDecoding(NETWORK_DECODING); + + /**********************************/ + /* Print out the file information */ + /**********************************/ + System.out.println("File Info\n"+ + "========================================="); + + if (cdf.confirmReadOnlyMode() == READONLYon) + System.out.println("CDF File: "+cdf+" (READONLYon)"); + else { + System.out.println("CDF File: "+cdf+" (READONLYoff)"); + } + + System.out.println("Version: "+cdf.getVersion()); + String cp = cdf.getCopyright(); + System.out.println("Copyright: "+cp); + System.out.println("Format: "+CDFUtils.getStringFormat(cdf)); + System.out.println("Encoding: "+ + CDFUtils.getStringEncoding(cdf)); + System.out.println("Decoding: "+ + CDFUtils.getStringDecoding(cdf)); + System.out.println("Majority: "+ + CDFUtils.getStringMajority(cdf)); + if (cdf.getMajority() == COLUMN_MAJOR) + System.out.println("(******** Data dumps from multi-dimensional "+ + "variables are shown row-based.)"); + System.out.println("Checksum: "+ + CDFUtils.getStringChecksum(cdf)); + System.out.println("numRvars: "+cdf.getNumRvars()); + System.out.println("numZvars: "+cdf.getNumZvars()); + System.out.println("numAttrs: "+cdf.getNumAttrs()+ + " ("+cdf.getNumGattrs()+" global, "+ + cdf.getNumVattrs()+" variable)"); + System.out.println("Compression: "+cdf.getCompression()); + if (cdf.getCompressionType() != 0) + System.out.println("cPct: "+cdf.getCompressionPct()); + if (new Integer(cdf.getVersion().substring(0,1)).intValue() > 3) { + long lsLastUpdated = cdf.getLeapSecondLastUpdated(); + if (lsLastUpdated > 0) + System.out.println("LeapSecondLastUpdated: "+lsLastUpdated); + } + System.out.println("Cache Size: "+cdf.confirmCDFCacheSize()); + + /**********************************************/ + /* Print out the Global Attribute information */ + /**********************************************/ + Attribute a; + String attrName = null; + int i; + long n = cdf.getNumGattrs(); + Vector ga = cdf.getGlobalAttributes(); + + System.out.println("\nGlobal Attributes ("+n+" attributes)\n"+ + "========================================="); + i = 0; + for (Enumeration e = ga.elements() ; e.hasMoreElements() ;) { + a = (Attribute) e.nextElement(); + n = a.getNumEntries(); + if (i == 0) { + attrName = a.getName(); + if (n <= 1) + System.out.println (attrName+" ("+n+" entry):"); + else + System.out.println (attrName+" ("+n+" entries):"); + } + else { + String currAttrName = a.getName(); + if (currAttrName != attrName) { + if (n <= 1) + System.out.println (currAttrName+" ("+n+" entry):"); + else + System.out.println (currAttrName+" ("+n+" entries):"); + } + } + i++; + Vector ent = a.getEntries(); + for (Enumeration e1 =ent.elements() ; e1.hasMoreElements() ;) { + Entry entry = (Entry) e1.nextElement(); + if (entry != null) { + long eDataType = entry.getDataType(); + System.out.print ("\t"+entry.getID()+" ("+ + CDFUtils.getStringDataType(eDataType)+ + "/"+entry.getNumElements()+ + "): \t"); + Object data = entry.getData(); + if (eDataType == CDF_EPOCH) { + System.out.println(Epoch.toEncode(((Double) data).doubleValue())); + } else if (eDataType == CDF_EPOCH16) { + System.out.println(Epoch16.toEncode((double[])data)); + } else if (eDataType == CDF_TIME_TT2000) { + System.out.println(CDFTT2000.toEncode(((Long)data).longValue())); + } else { + CDFUtils.printData (data); + } +// System.out.println (" "); + } + } + System.out.println (" "); + } + + /************************************************/ + /* Print out the Variable Attribute information */ + /************************************************/ + attrName = null; + n = cdf.getNumVattrs(); + Vector va = cdf.getVariableAttributes(); + + System.out.println("\nVariable Attributes ("+n+" attributes)\n"+ + "========================================="); + i = 0; + for (Enumeration e = va.elements() ; e.hasMoreElements() ;) { + a = (Attribute) e.nextElement(); + if (i == 0) { + attrName = a.getName(); + System.out.println (attrName+":"); + } + else { + String currAttrName = a.getName();; + if (currAttrName != attrName) + System.out.println (currAttrName+":"); + } + i++; + Vector ent = a.getEntries(); + for (Enumeration e1 =ent.elements() ; e1.hasMoreElements() ;) { + Entry entry = (Entry) e1.nextElement(); + if (entry != null) { + long eDataType = entry.getDataType(); + Variable v = cdf.getVariable(entry.getID()); + System.out.print ("\t"+v.getName()+" ("+ + CDFUtils.getStringDataType(eDataType)+ + "/"+entry.getNumElements()+"): "); + Object data = entry.getData(); + if (eDataType == CDF_EPOCH) { + System.out.println(Epoch.toEncode(((Double) data).doubleValue())); + } else if (eDataType == CDF_EPOCH16) { + System.out.println(Epoch16.toEncode((double[])data)); + } else if (eDataType == CDF_TIME_TT2000) { + System.out.println(CDFTT2000.toEncode(((Long) data).longValue())); + } else { + if (entry.getScope() == VARIABLE_SCOPE) { + if (CDFUtils.isStringDataType(eDataType)) { + if (data instanceof String[]) { + long ix = ((String[])data).length; + System.out.println("\t("+ix+" string"+(ix>1?"s":"")+") "); + int iy; + for (iy=0; iy 0) System.out.print (","); + System.out.print (dimSizes[i]); + } + System.out.print ("] "); + // if (numDims == 1) System.out.print ("\t"); + + System.out.print((v.getRecVariance() ? "T" : "F")+"/"); + long[] dimVariances = v.getDimVariances(); + for (i=0; i < v.getNumDims(); i++) + System.out.print( + ((dimVariances[i] == CDFConstants.VARY) ? "T" : "F")); + + String sparseRecord = CDFUtils.getStringSparseRecord(v); + if (!sparseRecord.equals("None")) + System.out.print (" sparseRecord=\""+sparseRecord+"\""); + + // Print the user-define pad value if one exists. + // if (v.checkPadValueExistence()) { +/* + padValue = v.getPadValue(); + if (dt == CDF_EPOCH) + padValue = Epoch.toEncode(((Double) padValue).doubleValue()); + else if (dt == CDF_EPOCH16) + padValue = Epoch16.toEncode((double[]) padValue); + else if (dt == CDF_TIME_TT2000) + padValue = CDFTT2000.toEncode(((Long) padValue).longValue()); + else if (dt != CDF_REAL4 && dt != CDF_FLOAT && + dt != CDF_REAL8 && dt != CDF_DOUBLE) + System.out.print (" PadValue="+((CDFUtils.isStringDataType(dt)|| + CDFUtils.isEpochDataType(dt))? + "\"":"")+padValue+ + ((CDFUtils.isStringDataType(dt)|| + CDFUtils.isEpochDataType(dt))?"\"":"")); + else { + String format; + try { + Attribute attr = cdf.getAttribute("FORMAT"); + format = (String) attr.getEntry (v.getID()).getData(); + } catch (CDFException ee) { + format = null; + } + System.out.print (" PadValue="); + CDFUtils.printDataWithFormat (padValue,format); + } +*/ + // } + + blockingFactor = v.getBlockingFactor(); + if (blockingFactor > 0) + System.out.print (" blockingFactor=\""+blockingFactor+"\""); + + System.out.println (" "); + } + + /**********************************************************/ + /* Print out the Variable data (all variables in the CDF) */ + /**********************************************************/ + System.out.println("\n\nVariable Data ("+n+" variables)\n"+ + "========================================="); + CDFData data = null; + long numRecs, maxRec; + long[] dimIndices = {0L}; + long[] dimIntervals = {1L}; + long[] dimSizes = {1L}; + + for (Enumeration e = vars.elements() ; e.hasMoreElements() ;) { + Variable v = (Variable) e.nextElement(); + + if (v.getNumDims() > 0) { + dimSizes = v.getDimSizes(); + dimIntervals = new long[dimSizes.length]; + dimIndices = new long[dimSizes.length]; + for (i=0; i < dimSizes.length; i++) { + dimIntervals[i] = 1; + dimIndices[i] = 0; + } + } + maxRec = v.getMaxWrittenRecord(); + numRecs = v.getNumWrittenRecords(); + varName = v.getName(); + System.out.println (varName); + String format; + try { + Attribute attr = cdf.getAttribute("FORMAT"); + format = (String) attr.getEntry (v.getID()).getData(); + } catch (CDFException ee) { + format = null; + } + + for (i=0; i < varName.length(); i++) + System.out.print ("-"); + System.out.println (" "); + + if (v.getCompressionType() == NO_COMPRESSION) + System.out.println ("Compression: None"); + else + System.out.println ("Compression: "+ + v.getCompression()+" ("+ + v.getCompressionPct()+"%)"); + if (v.checkPadValueExistence()) { + long myDT = v.getDataType(); + Object pv = v.getPadValue(); + if (pv != null) { + if (myDT == CDF_EPOCH) + System.out.println ("Pad value: "+ + Epoch.toEncode(((Double)pv).doubleValue())); + else if (myDT == CDF_EPOCH16) + System.out.println ("Pad value: "+ + Epoch16.toEncode((double[])pv)); + else if (myDT == CDF_TIME_TT2000) + System.out.println ("Pad value: "+ + CDFTT2000.toUTCstring(((Long)pv).longValue())); + else if (CDFUtils.isStringDataType(myDT)) + System.out.println ("Pad value: \""+ pv+"\""); + else { + System.out.print ("Pad value: "); + CDFUtils.printDataWithFormat (pv, format); +// System.out.println(""); + } + } + } + System.out.println ("Records: "+ + numRecs+"n/"+maxRec+"x"); + System.out.println ("Allocated: "+ + v.getNumAllocatedRecords()+"n/"+ + v.getMaxAllocatedRecord()+"x"); + System.out.println ("Blocking Factor: "+ + v.getBlockingFactor()); + System.out.println ("Sparseness: "+ + CDFUtils.getStringSparseRecord(v)); + System.out.println (" "); + + /********************************************************/ + /* maxRec represents the last record number for this */ + /* variable, not the number of records. */ + /* */ + /* NOTE: maxRec starts at 0, so if the value of maxRec */ + /* is 2, the actual number of records is 3. */ + /* If there are no records exists, the value of */ + /* maxRec is -1. */ + /********************************************************/ + long status; + for (i=0; i <= maxRec; i++) { + data = v.getHyperDataObject(i, 1, 1, + dimIndices, + dimSizes, + dimIntervals); + status = cdf.getStatus(); + if (status == CDF_OK || status != VIRTUAL_RECORD_DATA) { + System.out.println ("Record # "+i+":"); + data.dumpDataWithFormat(format); + } + } + System.out.println(""); + } + + /**************************************************/ + /* Print out a few individual variable data and */ + /* attribute entries. */ + /**************************************************/ + if (fileName.equals("test")) { + System.out.println("\n\nIndividual Variable Data\n"+ + "================================="); + + Variable longitude = cdf.getVariable("Longitude"), /* T/T */ + latitude = cdf.getVariable("Latitude"), /* F/T */ + latitude1 = cdf.getVariable("Latitude1"), /* T/F */ + time = cdf.getVariable("Time"), /* T/T */ + foo = cdf.getVariable("foo"), /* F/F */ + v = cdf.getVariable("longitude_dup"); + + System.out.println ("longDup.dumpData():"); + System.out.println ("------------------"); + if (v.getNumDims() > 0) { + dimSizes = v.getDimSizes(); + dimIntervals = new long[dimSizes.length]; + dimIndices = new long[dimSizes.length]; + for (i=0; i < dimSizes.length; i++) { + dimIntervals[i] = 1; + dimIndices[i] = 0; + } + } + maxRec = v.getMaxWrittenRecord(); + for (i=0; i <= maxRec; i++) { + System.out.println ("Record # "+i+":"); + data = v.getHyperDataObject(i, 1, 1, + dimIndices, + dimSizes, + dimIntervals); + data.dumpData(); + System.out.println(" "); + } + + + System.out.print ("Record #0 for latitude: "); + CDFUtils.printData (latitude.getRecord (0)); + System.out.println (""); + + System.out.print ("Record #1 for longitude: "); + CDFUtils.printData (longitude.getRecord (1)); + System.out.println (""); + + System.out.print ("Record #2 for latitude1: "); + CDFUtils.printData (latitude1.getRecord (2)); + System.out.println (""); + + System.out.print ("Record #0 for foo: "); + CDFUtils.printData (foo.getRecord (0)); + System.out.println ("\n"); + + System.out.print ("1st element of record #0 for latitude: "); + CDFUtils.printData (latitude.getSingleData(0, new long [] {0})); + System.out.println (""); + + System.out.print ("2nd element of record #1 for longitude: "); + CDFUtils.printData (longitude.getSingleData(1, new long [] {1})); + System.out.println (""); + + System.out.print ("3rd element of record #2 for longitude: "); + CDFUtils.printData (latitude1.getSingleData(2, new long [] {2})); + System.out.println (""); + + System.out.print ("1st element of record #0 for foo: "); + CDFUtils.printData (foo.getSingleData (0, new long [] {0})); + System.out.println ("\n"); + + CDFData dataRecord; + System.out.print ("(1,0)th element of record #0 for Time: "); + dataRecord = time.getSingleDataObject(0, new long[] {1,0}); + dataRecord.dumpData(); + + System.out.print ("(1,1)th element of record #0 for Time: "); + Long tValue = (Long) time.getSingleData(0, new long[] {1,1}); + System.out.println (tValue); + + System.out.println ("Record #0 for Time: "); + dataRecord = time.getRecordObject(0L); + dataRecord.dumpData(); + System.out.println ("\n"); + + System.out.println ("Record #0 for Time: "); + long[][] yy = (long [][]) time.getRecord(0L); + for (int x=0;x<3; x++) + for (int j=0;j<2;j++) + System.out.println("["+x+","+j+"] = "+yy[x][j]); + + System.out.println ("\n"); + + Variable var; + var = cdf.getVariable("Temperature2"); + System.out.print ("getScalarData for Temperature2: "); + CDFUtils.printData (var.getScalarData()); + System.out.println ("\n"); + + System.out.print ("getScalarDataObject for Temperature2: "); + dataRecord = var.getScalarDataObject(); + dataRecord.dumpData(); + System.out.println (""); + + var = cdf.getVariable("Temperature"); + System.out.print ("Record #0 for Temperature: "); + CDFUtils.printData (var.getScalarData(0L)); + System.out.println (""); + System.out.print ("Record #1 for Temperature: "); + dataRecord = var.getScalarDataObject(1L); + dataRecord.dumpData(); + System.out.println ("\n"); + + var = cdf.getVariable("Delta"); + System.out.println ("HyperGet for Delta: "); + + /***************************************************/ + /* Read 3 records, starting from record number 0. */ + /* Each record is an 3x2 array. */ + /***************************************************/ + int[][][] xxx = (int [][][]) var.getHyperData (0L, 3L, 1L, + new long[] {0, 0}, + new long[] {3, 2}, + new long[] {1, 1}); + for (int x=0;x<3; x++) { + System.out.println ("\nRecord #"+x+":"); + for (int j=0;j<3;j++) { + for (int k=0;k<2;k++) + System.out.println("["+j+","+k+"] = "+xxx[x][j][k]); + } + } + + /******************************************************/ + /* Read the 2nd and 3rd row of the 3x2 array in the */ + /* 1st and the 3rd record. */ + /******************************************************/ + int[][][] xx = (int [][][]) var.getHyperData (0L, 3L, 2L, + new long[] {1, 0}, + new long[] {2, 2}, + new long[] {1, 1}); + for (int x=0;x<2; x++) { + int recNo = x; + if (x == 1) recNo = x+1; + System.out.println ("\nRecord #"+recNo+ + " (2nd and 3rd row of the 3x2 array):"); + for (int j=0;j<2;j++) { + for (int k=0;k<2;k++) + System.out.println("["+(j+1)+","+k+"] = "+xx[x][j][k]); + } + } + + /******************************************************/ + /* Read the 1st column of the 3x2 array in the */ + /* 1st and the 2nd record. */ + /******************************************************/ + int[][] xx1 = (int [][]) var.getHyperData (0L, 2L, 1L, + new long[] {0, 0}, + new long[] {3, 1}, + new long[] {1, 1}); + for (int x=0; x < 2; x++) { + int recNo = x; + if (x == 1) recNo = 1; + System.out.println ("\nRecord #"+recNo+ + " (1st column of the 3x2 array):"); + for (int j=0; j < 3; j++) + System.out.println("["+j+",0] = "+xx1[x][j]); + } + System.out.println ("\n"); + + /*************************************************************/ + /* Initiate a record read for a group of CDF variables. */ + /* Five (5) variables are involved in this data get function */ + /* and the 6th record for each variable is acquired. */ + /*************************************************************/ + + /* record, the Vector holding the retrieved record objects */ + Vector record; + + String[] strVars = {"Longitude1", // variable names in CDF + "Temp1", + "dp", + "Temp", + "Temperature"}; + + long[] status = new long[6]; + record = cdf.getRecord(5L, strVars, status); + /* record = cdf.getRecord(5L, varIDs, status); */ + + System.out.println ("\nDump of the 6th record from \"Longitude1, "+ + "Temp1, dp, Temp, Temperature\":"); + + /* var: Longitude1 -- CDF_UINT2, dimensionality: 1:[3] */ + System.out.print (" Longitude1 -- "); + for (i = 0; i < 3; i++) + System.out.print (((int[])record.elementAt(0))[i]+" "); + System.out.println (""); + + /* var: Temp1 -- data type: CDF_REAL4 dimensionality: 1:[3] */ + System.out.print (" Temp1 -- "); + for (i = 0; i < 3; i++) + System.out.print (((float[])record.elementAt(1))[i]+" "); + System.out.println (""); + + /* var: dp -- data type: CDF_DOUBLE dimensionality: 1:[3] */ + System.out.print (" dp -- "); + for (i = 0; i < 3; i++) + System.out.print (((double[])record.elementAt(2))[i]+" "); + System.out.println (""); + + /* var: Temp -- data type: CDF_FLOAT dimensionality: 1:[3] */ + System.out.print (" Temp -- "); + for (i = 0; i < 3; i++) + System.out.print (((float[])record.elementAt(3))[i]+" "); + System.out.println (""); + + /* var: Temperature -- CDF_FLOAT, dimensionality: 0:[] */ + System.out.print (" Temperature -- "); + System.out.print (record.elementAt(4)+" "); + System.out.println (""); + + System.out.println("\n\nVariable/Global Attribute Entries"+ + "\n===================================="); + + Attribute test = cdf.getAttribute("Test"), /* global */ + validMin = cdf.getAttribute("validmin"); /* var */ + + Entry tEntry = test.getEntry(15), + vEntry = validMin.getEntry(longitude); + + long attrNum = test.getID(); + Attribute test1 = cdf.getAttribute(attrNum); + + System.out.print (test1.getName()+": \n\t"); + CDFUtils.printData (tEntry.getData()); + System.out.println (""); + + System.out.print ("\nVALIDMIN: \n\tLongitude: "); + CDFUtils.printData (vEntry.getData()); + System.out.println (""); + + System.out.print ("\nVALIDMAX: \n\tLatitude: "); + var = cdf.getVariable("Latitude"); + CDFUtils.printData (var.getEntryData("VALIDMAX")); + System.out.println (""); + + } + + cdf.close(); + } + } catch (Exception e) { + System.out.println (e); + } + } + } +} diff --git a/cdf38_1-dist/cdfjava/examples/ReadMetaCDF.java b/cdf38_1-dist/cdfjava/examples/ReadMetaCDF.java new file mode 100644 index 0000000..0ced351 --- /dev/null +++ b/cdf38_1-dist/cdfjava/examples/ReadMetaCDF.java @@ -0,0 +1,433 @@ +/****************************************************************************** +* Copyright 1996-2013 United States Government as represented by the +* Administrator of the National Aeronautics and Space Administration. +* All Rights Reserved. +******************************************************************************/ + +import java.io.*; +import java.text.*; +import java.util.*; +import java.lang.reflect.*; +import gsfc.nssdc.cdf.*; +import gsfc.nssdc.cdf.util.*; + +/** + * This program demonstrates how to read the contents of test.cdf created + * by CreateCDF.java in this directory. It differs from ReadCDF by showing + * only metadata and all variables' specifications, no data. + */ + +public class ReadMetaCDF implements CDFConstants{ + + public static void main(String[] args) { + String fileName = "test"; + int maxVarNameLength = 22; + int ii, jj; + CDF cdf; + + jj = args.length; + if (jj == 0) jj = 1; + + try { + + System.out.println("CDF Library version: "+CDF.getLibraryVersion()+"\n"); +/* + CDF.setValidate (VALIDATEFILEoff); +*/ + } catch (CDFException vax) { + System.out.println("*** Error... "+vax); + System.exit(1); + } + + for (ii = 0; ii < jj; ++ii) { + if (args.length != 0) fileName = args[ii]; + if (ii > 0) + System.out.println(""); + System.out.println("Reading " + fileName + "...:\n"); + try { + cdf = null; + cdf = CDF.open(fileName, READONLYon); + if (cdf.getStatus() != CDF_OK) + { + if (cdf.getStatus() == CHECKSUM_ERROR) + System.out.println("*** Checksum failed... the cdf file is corrupted...\n"); + if (cdf != null) cdf.close(); + } else { + + /************************************************************/ + /* If a decoding method is not specified when a CDF file is */ + /* opened, the CDF libaray knows what encoding method was */ + /* used to create the CDF file. */ + /* */ + /* Decoding method should be specified only if one needs */ + /* to translate data from one platform to another. */ + /************************************************************/ + // cdf.selectDecoding(NETWORK_DECODING); + + /**********************************/ + /* Print out the file information */ + /**********************************/ + System.out.println("File Info\n"+ + "========================================="); + + if (cdf.confirmReadOnlyMode() == READONLYon) + System.out.println("CDF File: "+cdf+" (READONLYon)"); + else { + System.out.println("CDF File: "+cdf+" (READONLYoff)"); + } + + System.out.println("Version: "+cdf.getVersion()); + String cp = cdf.getCopyright(); + System.out.println("Copyright: "+cp); + System.out.println("Format: "+CDFUtils.getStringFormat(cdf)); + System.out.println("Encoding: "+ + CDFUtils.getStringEncoding(cdf)); + System.out.println("Decoding: "+ + CDFUtils.getStringDecoding(cdf)); + System.out.println("Majority: "+ + CDFUtils.getStringMajority(cdf)); + if (cdf.getMajority() == COLUMN_MAJOR) + System.out.println("(******** Data dumps from multi-dimensional "+ + "variables are shown row-based.)"); + System.out.println("Checksum: "+ + CDFUtils.getStringChecksum(cdf)); + System.out.println("numRvars: "+cdf.getNumRvars()); + System.out.println("numZvars: "+cdf.getNumZvars()); + System.out.println("numAttrs: "+cdf.getNumAttrs()+ + " ("+cdf.getNumGattrs()+" global, "+ + cdf.getNumVattrs()+" variable)"); + System.out.println("Compression: "+cdf.getCompression()); + if (cdf.getCompressionType() != 0) + System.out.println("cPct: "+cdf.getCompressionPct()); + if (new Integer(cdf.getVersion().substring(0,1)).intValue() > 3) { + long lsLastUpdated = cdf.getLeapSecondLastUpdated(); + if (lsLastUpdated > 0) + System.out.println("LeapSecondLastUpdated: "+lsLastUpdated); + } + System.out.println("Cache Size: "+cdf.confirmCDFCacheSize()); + + /**********************************************/ + /* Print out the Global Attribute information */ + /**********************************************/ + Attribute a; + String attrName = null; + int i; + long n = cdf.getNumGattrs(); + Vector ga = cdf.getGlobalAttributes(); + + System.out.println("\nGlobal Attributes ("+n+" attributes)\n"+ + "========================================="); + i = 0; + for (Enumeration e = ga.elements() ; e.hasMoreElements() ;) { + a = (Attribute) e.nextElement(); + n = a.getNumEntries(); + if (i == 0) { + attrName = a.getName(); + if (n <= 1) + System.out.println (attrName+" ("+n+" entry):"); + else + System.out.println (attrName+" ("+n+" entries):"); + } + else { + String currAttrName = a.getName(); + if (currAttrName != attrName) { + if (n <= 1) + System.out.println (currAttrName+" ("+n+" entry):"); + else + System.out.println (currAttrName+" ("+n+" entries):"); + } + } + i++; + Vector ent = a.getEntries(); + for (Enumeration e1 =ent.elements() ; e1.hasMoreElements() ;) { + Entry entry = (Entry) e1.nextElement(); + if (entry != null) { + long eDataType = entry.getDataType(); + System.out.print ("\t"+entry.getID()+" ("+ + CDFUtils.getStringDataType(eDataType)+ + "/"+entry.getNumElements()+ + "): \t"); + Object data = entry.getData(); + if (eDataType == CDF_EPOCH) { + System.out.println(Epoch.toEncode(((Double) data).doubleValue())); + } else if (eDataType == CDF_EPOCH16) { + System.out.println(Epoch16.toEncode((double[])data)); + } else if (eDataType == CDF_TIME_TT2000) { + System.out.println(CDFTT2000.toEncode(((Long)data).longValue())); + } else { + CDFUtils.printData (data); + } +// System.out.println (" "); + } + } + System.out.println (" "); + } + + /************************************************/ + /* Print out the Variable Attribute information */ + /************************************************/ + attrName = null; + n = cdf.getNumVattrs(); + Vector va = cdf.getVariableAttributes(); + + System.out.println("\nVariable Attributes ("+n+" attributes)\n"+ + "========================================="); + i = 0; + for (Enumeration e = va.elements() ; e.hasMoreElements() ;) { + a = (Attribute) e.nextElement(); + if (i == 0) { + attrName = a.getName(); + System.out.println (attrName+":"); + } + else { + String currAttrName = a.getName();; + if (currAttrName != attrName) + System.out.println (currAttrName+":"); + } + i++; + Vector ent = a.getEntries(); + for (Enumeration e1 =ent.elements() ; e1.hasMoreElements() ;) { + Entry entry = (Entry) e1.nextElement(); + if (entry != null) { + long eDataType = entry.getDataType(); + Variable v = cdf.getVariable(entry.getID()); + System.out.print ("\t"+v.getName()+" ("+ + CDFUtils.getStringDataType(eDataType)+ + "/"+entry.getNumElements()+"): "); + Object data = entry.getData(); + if (eDataType == CDF_EPOCH) { + System.out.println(Epoch.toEncode(((Double) data).doubleValue())); + } else if (eDataType == CDF_EPOCH16) { + System.out.println(Epoch16.toEncode((double[])data)); + } else if (eDataType == CDF_TIME_TT2000) { + System.out.println(CDFTT2000.toEncode(((Long) data).longValue())); + } else { + if (entry.getScope() == VARIABLE_SCOPE) { + if (CDFUtils.isStringDataType(eDataType)) { + if (data instanceof String[]) { + long ix = ((String[])data).length; + System.out.println("\t("+ix+" string"+(ix>1?"s":"")+") "); + int iy; + for (iy=0; iy 0) System.out.print (","); + System.out.print (dimSizes[i]); + } + System.out.print ("] "); + // if (numDims == 1) System.out.print ("\t"); + + System.out.print((v.getRecVariance() ? "T" : "F")+"/"); + long[] dimVariances = v.getDimVariances(); + for (i=0; i < v.getNumDims(); i++) + System.out.print( + ((dimVariances[i] == CDFConstants.VARY) ? "T" : "F")); + + String sparseRecord = CDFUtils.getStringSparseRecord(v); + if (!sparseRecord.equals("None")) + System.out.print (" sparseRecord=\""+sparseRecord+"\""); + + // Print the user-define pad value if one exists. + // if (v.checkPadValueExistence()) { +/* + padValue = v.getPadValue(); + if (dt == CDF_EPOCH) + padValue = Epoch.toEncode(((Double) padValue).doubleValue()); + else if (dt == CDF_EPOCH16) + padValue = Epoch16.toEncode((double[]) padValue); + else if (dt == CDF_TIME_TT2000) + padValue = CDFTT2000.toEncode(((Long) padValue).longValue()); + else if (dt != CDF_REAL4 && dt != CDF_FLOAT && + dt != CDF_REAL8 && dt != CDF_DOUBLE) + System.out.print (" PadValue="+((CDFUtils.isStringDataType(dt)|| + CDFUtils.isEpochDataType(dt))? + "\"":"")+padValue+ + ((CDFUtils.isStringDataType(dt)|| + CDFUtils.isEpochDataType(dt))?"\"":"")); + else { + String format; + try { + Attribute attr = cdf.getAttribute("FORMAT"); + format = (String) attr.getEntry (v.getID()).getData(); + } catch (CDFException ee) { + format = null; + } + System.out.print (" PadValue="); + CDFUtils.printDataWithFormat (padValue,format); + } +*/ + // } + + blockingFactor = v.getBlockingFactor(); + if (blockingFactor > 0) + System.out.print (" blockingFactor=\""+blockingFactor+"\""); + + System.out.println (" "); + } + + /**********************************************************/ + /* Print out the Variable data (all variables in the CDF) */ + /**********************************************************/ + System.out.println("\n\nVariable Data ("+n+" variables)\n"+ + "========================================="); + CDFData data = null; + long numRecs, maxRec; + long[] dimIndices = {0L}; + long[] dimIntervals = {1L}; + long[] dimSizes = {1L}; + + for (Enumeration e = vars.elements() ; e.hasMoreElements() ;) { + Variable v = (Variable) e.nextElement(); + + if (v.getNumDims() > 0) { + dimSizes = v.getDimSizes(); + dimIntervals = new long[dimSizes.length]; + dimIndices = new long[dimSizes.length]; + for (i=0; i < dimSizes.length; i++) { + dimIntervals[i] = 1; + dimIndices[i] = 0; + } + } + maxRec = v.getMaxWrittenRecord(); + numRecs = v.getNumWrittenRecords(); + varName = v.getName(); + System.out.println (varName); + String format; + try { + Attribute attr = cdf.getAttribute("FORMAT"); + format = (String) attr.getEntry (v.getID()).getData(); + } catch (CDFException ee) { + format = null; + } + + for (i=0; i < varName.length(); i++) + System.out.print ("-"); + System.out.println (" "); + + if (v.getCompressionType() == NO_COMPRESSION) + System.out.println ("Compression: None"); + else + System.out.println ("Compression: "+ + v.getCompression()+" ("+ + v.getCompressionPct()+"%)"); + if (v.checkPadValueExistence()) { + long myDT = v.getDataType(); + Object pv = v.getPadValue(); + if (pv != null) { + if (myDT == CDF_EPOCH) + System.out.println ("Pad value: "+ + Epoch.toEncode(((Double)pv).doubleValue())); + else if (myDT == CDF_EPOCH16) + System.out.println ("Pad value: "+ + Epoch16.toEncode((double[])pv)); + else if (myDT == CDF_TIME_TT2000) + System.out.println ("Pad value: "+ + CDFTT2000.toUTCstring(((Long)pv).longValue())); + else if (CDFUtils.isStringDataType(myDT)) + System.out.println ("Pad value: \""+ pv+"\""); + else { + System.out.print ("Pad value: "); + CDFUtils.printDataWithFormat (pv, format); + } + } + } + System.out.println ("Records: "+ + numRecs+"n/"+maxRec+"x"); + System.out.println ("Allocated: "+ + v.getNumAllocatedRecords()+"n/"+ + v.getMaxAllocatedRecord()+"x"); + System.out.println ("Blocking Factor: "+ + v.getBlockingFactor()); + System.out.println ("Sparseness: "+ + CDFUtils.getStringSparseRecord(v)); + System.out.println (" "); + + /********************************************************/ + /* maxRec represents the last record number for this */ + /* variable, not the number of records. */ + /* */ + /* NOTE: maxRec starts at 0, so if the value of maxRec */ + /* is 2, the actual number of records is 3. */ + /* If there are no records exists, the value of */ + /* maxRec is -1. */ + /********************************************************/ +/* + long status; + for (i=0; i <= maxRec; i++) { + data = v.getHyperDataObject(i, 1, 1, + dimIndices, + dimSizes, + dimIntervals); + status = cdf.getStatus(); + if (status == CDF_OK || status != VIRTUAL_RECORD_DATA) { + System.out.println ("Record # "+i+":"); + data.dumpDataWithFormat(format); + } + } +*/ + } + cdf.close(); + } + } catch (Exception e) { + System.out.println (e); + } + } + } +} diff --git a/cdf38_1-dist/cdfjava/examples/test-arm.cdf b/cdf38_1-dist/cdfjava/examples/test-arm.cdf new file mode 100644 index 0000000000000000000000000000000000000000..c6e31f19b352e1ee61a9b35ddd67f2c44a2502ba GIT binary patch literal 117066 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 literal 0 HcmV?d00001 diff --git a/cdf38_1-dist/cdfjava/examples/test.cdf b/cdf38_1-dist/cdfjava/examples/test.cdf new file mode 100644 index 0000000000000000000000000000000000000000..3c6a108fb7da4ab428f9ee8379ae43e148174d28 GIT binary patch literal 117066 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 literal 0 HcmV?d00001 diff --git a/cdf38_1-dist/cdfjava/examples/test0.cdf b/cdf38_1-dist/cdfjava/examples/test0.cdf new file mode 100644 index 0000000000000000000000000000000000000000..3c2251a067e297501cab362166493bcfc8a15d88 GIT binary patch literal 116277 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 literal 0 HcmV?d00001 diff --git a/cdf38_1-dist/cdfjava/examples/testCdfRowMajor.cdf b/cdf38_1-dist/cdfjava/examples/testCdfRowMajor.cdf new file mode 100644 index 0000000000000000000000000000000000000000..1b84b3bd499acb698c952a6d022375524a2c7e17 GIT binary patch literal 1436 zcmeHGK~KUk6z*nF(|Gg;^au&Vfr-dT$Z&*2g;3yLS(U}Hk*YEqf_g=TJ+3Op!5ZY|eHmq|1&?>ApEPIMT?i&uEV`Bn)$zqYjq{}2D zej*l3lCszJE4b`ch?gu=5#G-wskd6L({SB0a?_!mlOFXwOqXoN$#9;o!r979V6!j^ zWr}rG5(G>HL>Kzec9O?q$p!8S&f{Ai$tt;KB8^xakcQiA*2#o+aJjFFVlIi}5O^Ir z84d@dar>%I$MkYEt*IBNsY7bL!L)+2&-y8jq0ufjThB#Zddal1&T!+kR+*<-S#!Wc zQ>UN`sqO*7e$V0Oj9mYAFQ<`U@x$p|lrX6~|KO_brvz!|eF6OhX?z8S&;ew@zpOq( pcz%@eT~q_$w|U&%|4!>Z`xp?;Utegg);#~(1=cR8fAQ-a_yDz#*V+I8 literal 0 HcmV?d00001 diff --git a/cdf38_1-dist/cdfjava/examples/testjson.cdf b/cdf38_1-dist/cdfjava/examples/testjson.cdf new file mode 100644 index 0000000000000000000000000000000000000000..aa458acd9773cdd460979f90efac214ce839fdf5 GIT binary patch literal 37376 zcmeI5O>7%Q6vuZ{Cr(ySBxE6w5E@R{QuE~`DpVBPij@#ZQQIUHNI~t^c47<1Hr_1| z_mWElhc*d_69NgTJ#eZx=7vQD2PDotR^bNaz-QG{-S_5W?YK2aK}fCk|D>5WJF~Oi z`Ok0P#ZS9G{%P5k)oNMN>=((=F`J#H>JXJdDg#vds07y1=1f=D)~Xeeb$wUNRO@T5 zFXGeLnS@jH{hD`dbTpS=8CmsKaw8Sjb4OOI?>P%KH&+lRi|bw~=joYlu2e4h>&_dQ zh0N$|HJ^9ud7)06DVJ7@zL+jl{6gKCtrrTF^M$g1M4WKz>t(l+7s;`sN5{p|LdJE#FU$jg7Uh5XP1U zdqb_=&XSL)_T{+pvfig>yFU^<8?5Wh-2D8R%zS$|oUJr1d#G#ahEpxK8Z|6(Kq1?Z zwPjr*&#}c=lp6ckHS>(;6HU9@tBdr@=c{|{pN`c$D@H!r+8(;O`Q%T0A7u72Rr(ox z;W276FPe`5pW0;7>t(g?jRtrfw)tH?vytRF+(x2oXax?i_faF~eO_HN+LMj@Cg=_| zPw?JGdBg5fKW`@ACkiwG17H9QfB`T72EYIq00UqE41fVJ00zJS7ytuc01SWuFaQR? z02lxRU;qq&0Wk3BF`#k*>>_!c^D*}y^a!T8#tbf7nY#+itI}nK)?v2k*1a`T6Y|eSc}?2b+71*tOX`t9kwJ z`11C*cJpfOxO3x5U)rn(UhOM%fDZh8g9C5?4)7cx4j>L74j>L74j>L74j>L74j>L7 z4j>L74j>L74j>L74j>L74j>L74j>L74j>LZY;i#S|8JMc>wJ)R_zgNosBlgL*=rwl z_+I%SGWUV=75Lo7q?!@pn%|$oCD7%EKjwbddi)PLA+N`}b4C8`Slx?|IUyHgTd7y~ zK1(H*w^O&{pQmnI*-2fkeUUouL@5vC@n-B=w0SXhxcTd;!RG1R!%bcb3N!!%U;qq& z0WbgtzyKHk17H9QfB`T72EYIq00UqE41fVJ00zJS7ytuc01SWuFz|3QpmGE3x5?|A z5ZS|T`OrBb<;&_E=^vC6!ry!fzEQ*HHm1~!FxP@j3vhrWkb#w6Nge8%YtQr=@71s7 zi6_WM$CDG2Q&W=@$#Hp`sGtB8fC5ke3P1rU00p1`6o3Ly017|>C;$bZ02F`%Pyh-* z0Vn_kpa2wr0#E=7K!Hb70hJD5XURuYd+TTI`TZcA`@x0ZYoYT%sHM%M7|fn^eZM|# zy2I*UriF734B6IKRIy&>D>+(Q9@JAE47{8yme~#?uXaY@6soXTBSSbd%Te|LjV8( literal 0 HcmV?d00001 diff --git a/cdf38_1-dist/cdfjava/examples/testo.cdf b/cdf38_1-dist/cdfjava/examples/testo.cdf new file mode 100644 index 0000000000000000000000000000000000000000..f7fc98f14d52ba857bccec28c9b33a020ecbe7d7 GIT binary patch literal 115665 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 literal 0 HcmV?d00001 diff --git a/cdf38_1-dist/cdfjava/jni/Makefile b/cdf38_1-dist/cdfjava/jni/Makefile new file mode 100644 index 0000000..356f2f6 --- /dev/null +++ b/cdf38_1-dist/cdfjava/jni/Makefile @@ -0,0 +1,93 @@ +#------------------------------------------------------------------------------ +# Copyright 1996-2016 United States Government as represented by the +# Administrator of the National Aeronautics and Space Administration. +# All Rights Reserved. +#------------------------------------------------------------------------------ +# +# SPDF/CDF JNI library makefile. +# +# Version 1.0, 23-Jun-2020 +# +# Modification history: +# +# V1.0 23-Jun-20, M Liu Original version. +# +#------------------------------------------------------------------------------ +# + +.SILENT: + +SHELL=/bin/sh +NULL=true + +SHARED= +PIC= +CCx= +LDx= +COPTIONS= +SYSLIBS= +JNIEXT= +SHAREDEXT= +LDOPTIONS= +VERSION= +JAVA_HOME= +JNIOS= +LDLIB= +MAKE=make + +INCLUDEcdf=../../src/include +INCLUDEjni1=. +INCLUDEjni2=$(JAVA_HOME)/include +INCLUDEjni3=$(INCLUDEjni2)/$(JNIOS) + +CC=$(CCx) +LD=$(LDx) + +CFLAGS=$(COPTIONS) $(PIC) -I$(INCLUDEcdf) -I$(INCLUDEjni1) -I$(INCLUDEjni2) -I$(INCLUDEjni3) +LDFLAGS=$(LDOPTIONS) + +#OBJs=cdfNativeLibrary.o ../../src/lib/libcdf.$(SHAREDEXT) +OBJs=cdfNativeLibrary.o ../../src/lib/libcdf.a + +CDFh=$(INCLUDEcdf)/cdf.h $(INCLUDEcdf)/cdfconfig.h $(INCLUDEcdf)/cdfdist.h $(INCLUDEcdf)/cdflib.h $(INCLUDEcdf)/cdflib64.h +JNIh=cdfNativeLibrary.h cdfjava.h + +#------------------------------------------------------------------------------ +# Compile/link. +#------------------------------------------------------------------------------ + +all: shared.$(SHARED) + +shared.yes: libcdfNativeLibrary.$(JNIEXT) + +libcdfNativeLibrary.so \ +libcdfNativeLibrary.jnilib \ +libcdfNativeLibrary.dll \ +libcdfNativeLibrary.sl: $(OBJs) + @if [ -f $@ ] ; then rm $@ ; else $(NULL) ; fi + @echo $(LD) $(LDFLAGS) -o $@ $(OBJs) $(LDLIB) -lc -lm + $(LD) $(LDFLAGS) -o $@ $(OBJs) $(LDLIB) -lc -lm +.c.o: + @echo $(CC) $(CFLAGS) -c $< ; \ + $(CC) $(CFLAGS) -c $< ; \ + +cdfNativeLibrary.o: cdfNativeLibrary.c $(CDFh) $(JNIh) + +shared.no: + +#------------------------------------------------------------------------------ +# Clean/purge. +#------------------------------------------------------------------------------ + +clean: + @-rm -f *.o + @-rm -f core + @-rm -f libcdfNativeLibrary.so + @-rm -f libcdfNativeLibrary.sl + @-rm -f libcdfNativeLibrary.jnilib + @-rm -f libcdfNativeLibrary.dll + +purge: + @-rm -f *~ + @-rm -f *# + diff --git a/cdf38_1-dist/cdfjava/jni/cdfNativeLibrary.c b/cdf38_1-dist/cdfjava/jni/cdfNativeLibrary.c new file mode 100644 index 0000000..4bc0f58 --- /dev/null +++ b/cdf38_1-dist/cdfjava/jni/cdfNativeLibrary.c @@ -0,0 +1,3114 @@ +/* + * $Id: cdfNativeLibrary.c,v 1.2 2021/12/13 20:42:14 mhliu Exp $ + */ +/****************************************************************************** +* Copyright 1996-2014 United States Government as represented by the +* Administrator of the National Aeronautics and Space Administration. +* All Rights Reserved. +******************************************************************************/ +/* + * cdfjava.c + * + * This file contains all the JNI C wrappers for the CDF, Attribute, etc + * classes and their children and instances. + * + * C Functions: + * ErrorHandler - Handles all errors and throws appropriate CDFExceptions + * cdfObjectType - Determines the CDF Object's class + * getFuncOrItem - Gets a java/lang/Long out of the command vector and + * returns the CDF function or item. + * getJavaField - Gets the value out of the intance var that the argument + * describes and places it in arg.ptr + * setJavaField - Sets the instance var to the value pointed to by arg.ptr + * argAlloc - Allocated space to arg.ptr to hold the value + * cleanArgument - Cleans up the memory and UTF strings + * ErrHandle - Cleans up the memory and UTF strings before returning an + * error status after a CDFlib call + * cleanGlobalRefs - Cleans the global references + * getItem - Retrieves the elements in a vector that is passed in + * addCDFid - Adds a CDF id to the list of maintained CDF ids + * getCDFid - Returns the CDF id that corresponds to the jid + * removeCDFid - Mark the CDF id as closed + * cleanGlobalRefs - Clear the CDFid link list and free the global + * references if there is none open CDF + * JAVAcdflib - The main method for parsing and executing the command + * vector + * + * JNI methods: + * Java_gsfc_nssdc_cdf_CDFNativeLibrary_cdfNativeLib + * - Main wrapper for the native implementation of the CDF Java APIs + * + * Java_gsfc_nssdc_cdf_util_Epoch_compute + * Java_gsfc_nssdc_cdf_util_Epoch_breakdown + * Java_gsfc_nssdc_cdf_util_Epoch_encode + * Java_gsfc_nssdc_cdf_util_Epoch_encode1 + * Java_gsfc_nssdc_cdf_util_Epoch_encode2 + * Java_gsfc_nssdc_cdf_util_Epoch_encode3 + * Java_gsfc_nssdc_cdf_util_Epoch_encode4 + * Java_gsfc_nssdc_cdf_util_Epoch_encodex + * + * @version 2.0 03/18/05 Removed the code for selection of current CDF, attribute, + * variable or entry when just passed an "NULL_" item. + * It caused a problem under multi-thread environment as the + * selection might not be followed immediately by the intended + * operation of the same thread, thus unexpected results would + * happen. Selections are done as part of operations passed + * to JNI. JNI call is synchronized so only one process is + * allowed in a JVM. + * @version 2.1 06/18/09 Added call ROWtoCOL when hyper-put and COLtoROW + * when hyper-get for multi-dimensional variables + * in a COLUMN-major CDF as the data passed from/to + * Java is ROW-based. + * @version 2.2 05/28/13 Added ErrHandle to free up space(s) before an error + * status is returnedi to avoid memory leak(s). + * + * Author: Mike Liu, RSTX + * Phil Williams. QSS/NASA/GSFC + * + */ + +#include "cdfjava.h" + +#if defined(sun) && !defined(SOLARIS) && !defined(__GCC_NEW_VARARGS__) +# define VARARGS +#else +# define STDARG +#endif + +#if defined(hpux) +# define VA_START(ap) { \ +va_list _apT_; \ +va_start (_apT_); \ +ap = _apT_; \ +} +#else +# define VA_START(ap) va_start(ap) +#endif + +/********************************************* + ** ** + ** Global References ** + ** ** + *********************************************/ + +static char msg[2048]; /* Debug message buffer */ +int mydebug = 0; /* 0 = off, non-zero = on */ +jlong jmax = (jlong) 1 << 32; +jlong jsignmax = ((jlong) 1 << 31) - 1; +jint imax = (jint) 1 << 16; +jint isignmax = (jint) ( 1 << 15) - 1; +jshort smax = (jshort) 1 << 8; +jshort ssignmax = (jshort) (1 << 7) -1; + +static jclass cdfClass = 0, varClass, entryClass, attrClass, dataClass, + excClass; +static jclass byteClass, shortClass, intClass, longClass, floatClass, + doubleClass, strClass, objClass, vecClass; +static jmethodID BvalID, SvalID, IvalID, LvalID, FvalID, DvalID; +static jfieldID cdfStatusID, infoWarnID; +/*static jfieldID backwardEnvVarID; */ +static long envVar; +static long lib_ver; +static char *leapTable; +static int realChar; + +/* + A list of currently available CDFs. This list allows multiple cdfs to be + opened at one time. The cdfIDs are maintained in this list and the only + information that is passed back to Java objects is the position in the + list of the current CDF +*/ +cdfIDList *listOfCDFs = NULL; + +/********************************************* + ** ** + ** C Utility Functions ** + ** ** + *********************************************/ + +/* Function: ErrorHandler + * + * Purpose: Throw exceptions back to Java to handle CDF errors + * Depending on the status returned a CDFException will be thrown + * + * Params: + * in: where - string describing where error occured in calling routine. + * in: status - CDF status code. + * in: env - JNI runtime environment + * Returns: + * 1 if no fatal errors had occured + * 0 if a fatal error occured + */ +int ErrorHandler (char *where, long status, JNIEnv *env, jobject myCDF, + int flag) { + + jmethodID cdfExceptionInit; + jthrowable cdfException; + char text[CDF_STATUSTEXT_LEN+128]; + + if (flag == 1) (*env)->SetLongField(env, myCDF, cdfStatusID, (jlong)status); + if (status == CDF_OK) return(1); /* ignore OK */ + + /* Get the message and throw appropriate exception */ + CDFlib (SELECT_, CDF_STATUS_, status, + GET_, STATUS_TEXT_, text, + NULL_); + + if ((status > CDF_OK) || (status == CHECKSUM_ERROR) || + (CDF_OK > status && status >= CDF_WARN)) { + jlong infowarn; + infowarn = (long) (*env)->GetLongField(env, myCDF, infoWarnID); + /* Print warnings or information to the stdout */ + strcat(text, "\n "); + strcat(text, where); + MYDEBUG("ErrorHandler", text); + if (infowarn == 1) printf("%s\n", text); + return(1); + } else { /* Throw the rest */ + strcpy(msg, where); + strcat(msg, " exception occured: "); + strcat(msg, text); + MYDEBUG("ErrorHandler", msg); + + /* if excClass not found then simply return. + This should never happen. */ + if (excClass == 0) return(0); + /* Get the method ID for the constructor CDFException(long) */ + cdfExceptionInit = (*env)->GetMethodID(env, excClass, + "", + "(JLjava/lang/String;)V"); + + /* Build a new cdfException object */ + cdfException = (*env)->NewObject(env, excClass, cdfExceptionInit, + (jlong)status, + (*env)->NewStringUTF(env, where)); + + MYDEBUG("ErrorHandler", "cdfException object created"); + + /* Throw the newly created exception */ + (*env)->Throw(env, cdfException); + + MYDEBUG("ErrorHandler", "cdfException thrown"); + + return(0); + } +} /* end ErrorHandler */ + + +/* Function: cdfObjectType + * + * Purpose: Determine the CDFObject's class and return the + * appropriate flag + * + * Parameters: + * in: env - the Java runtime environment + * in: obj - the Object whose type will be determined + * Returns: + * A "long" integer representing the object type (see cdfjava.h for + * definitions. + */ +long cdfObjectType(JNIEnv *env, jobject obj) { + + if (obj == NULL) { + (*env)->ThrowNew(env, excClass, "cdfObject is null"); + return -1L; + } + + if ((*env)->IsInstanceOf(env, obj, cdfClass)) + return CDF_CLASS; + + else if ((*env)->IsInstanceOf(env, obj, varClass)) + return VAR_CLASS; + + else if ((*env)->IsInstanceOf(env, obj, dataClass)) + return DATA_CLASS; + + else if ((*env)->IsInstanceOf(env, obj, entryClass)) + return ENTRY_CLASS; + + else if ((*env)->IsInstanceOf(env, obj, attrClass)) + return ATTR_CLASS; + + else + return -1L; /* Unknown class */ +} + +/* Function: getFuncOrItem + * + * Purpose: parse the next element in the command vector and return + * the CDF function or item at that location. + * Parameters: + * in: env - the Java runtime environment + * in: obj - a Long object whose value should correspond to a CDF function + * or CDF item + * out: funcOrItem - the CDF function or item that the object represents + * Returns: + * CDFstatus + */ +CDFstatus getFuncOrItem(JNIEnv *env, jobject obj, long *funcOrItem) { + + if ((*env)->IsInstanceOf(env, obj, longClass) == JNI_FALSE){ + return(BAD_FNC_OR_ITEM); + } + + *funcOrItem = (long)((*env)->CallLongMethod(env, obj, LvalID)); + + return(CDF_OK); +} + +/* Function: getJavaField + * + * Purpose: Move the value from the Java's instance variable + * to arg.ptr for use in C + * Parameters: + * env - Java VM pointer + * arg - A pointer to an argument structure + * Returns: + * none (should be CDFstatus) + */ +void getJavaField(JNIEnv *env, argument *arg) { + + jthrowable exc; + jobject tempObject; + jarray arrayObject; + jbyte *bbody; + jshort *sbody; + jint *ibody; + jlong *jbody; + jfloat *fbody; + jdouble *dbody; + char dummySig[50]; + char dummyCSig[50]; + + if (arg->isEntryorVariableData) { + if (arg->isArray) { + strcpy(dummySig, arg->datasig+1); /* Skip "[" */ + strcpy(dummyCSig, arg->Csig+1); + } else { + strcpy(dummySig, arg->datasig); + strcpy(dummyCSig, arg->Csig); + } + + } else { + if (arg->isArray) + strcpy(dummySig, arg->sig+1); /* Skip "[" */ + else + strcpy(dummySig, arg->sig); + } + sprintf(msg,"dummySig = %s", dummySig); + MYDEBUG("getJavaField", msg); + + switch (dummySig[0]) { + case 'Z': /* boolean */ + break; + + case 'B': /* byte */ + if (arg->isArray) { + arrayObject = (*env)->GetObjectField(env, arg->myObject, arg->id); + bbody = (*env)->GetByteArrayElements(env, (jarray)arrayObject, 0); + memcpy (arg->ptr, bbody, sizeof(char)*arg->length); + (*env)->ReleaseByteArrayElements(env, + (jarray)arrayObject, bbody, 0); + } else { + *(char *)arg->ptr + = (*env)->GetByteField(env, arg->myObject, arg->id); + } + break; + + case 'C': /* char */ + break; + + case 'S': /* short */ + if (arg->isArray) { + arrayObject = (*env)->GetObjectField(env, arg->myObject, arg->id); + sbody = (*env)->GetShortArrayElements(env, (jarray)arrayObject, 0); + if (strncmp((char *)dummyCSig, "S", 1) == 0) + memcpy (arg->ptr, sbody, sizeof(short)*arg->length); + else { /* Data type is CDF_UINT1 */ + int i; + for (i=0; i< arg->length; i++) + if (sbody[i] <= ssignmax) + *((jbyte *) arg->ptr + i) = (jbyte) sbody[i]; + else + *((jbyte *) arg->ptr + i) = (jbyte) (sbody[i] - smax); + } + (*env)->ReleaseShortArrayElements(env, + (jarray)arrayObject, sbody, 0); + } else { + if (strncmp((char *)dummyCSig, "S", 1) == 0) + *(short *)arg->ptr + = (*env)->GetShortField(env, arg->myObject, arg->id); + else + *(jbyte *)arg->ptr + = (jbyte) (*env)->GetShortField(env, arg->myObject, arg->id); + } + break; + + case 'I': /* integer */ + if (arg->isArray) { + arrayObject = (*env)->GetObjectField(env, arg->myObject, arg->id); + ibody = (*env)->GetIntArrayElements(env, (jarray)arrayObject, 0); + if (strncmp((char *)dummyCSig, "I", 1) == 0) + memcpy (arg->ptr, ibody, sizeof(jint)*arg->length); + else { /* Data type is CDF_UINT2 */ + int i; + for (i=0; i< arg->length; i++) + if (ibody[i] <= isignmax) + *((jshort *) arg->ptr + i) = (jshort) ibody[i]; + else + *((jshort *) arg->ptr + i) = (jshort) (ibody[i] - imax); + } + (*env)->ReleaseIntArrayElements(env, + (jarray)arrayObject, ibody, 0); + } else { + if (strncmp((char *)dummyCSig, "I", 1) == 0) + *(jint *)arg->ptr + = (*env)->GetIntField(env, arg->myObject, arg->id); + else /* Data type is CDF_UINT2 */ + *(jshort *)arg->ptr + = (jshort) (*env)->GetIntField(env, arg->myObject, arg->id); + } + break; + + case 'J': /* long */ + if (arg->isArray) { + int i; + arrayObject = (*env)->GetObjectField(env, arg->myObject, arg->id); + jbody = (*env)->GetLongArrayElements(env, (jarray)arrayObject, 0); + if (!arg->isEntryorVariableData) { + for (i=0; i< arg->length; i++) + *((long *) arg->ptr + i) = (long) jbody[i]; + } else { + if (strncmp((char *)dummyCSig, "J", 1) == 0) { /* CDF_INT8 */ + memcpy (arg->ptr, jbody, sizeof(jlong)*arg->length);; + } else { /* Data type is CDF_UINT4 */ + for (i=0; i< arg->length; i++) + if (jbody[i] <= jsignmax) + *((jint *) arg->ptr + i) = (jint) jbody[i]; + else + *((jint *) arg->ptr + i) = (jint) (jbody[i] - jmax); + } + } + (*env)->ReleaseLongArrayElements(env, + (jarray)arrayObject, jbody, 0); + } else { + if (!arg->isEntryorVariableData) + *(long *)arg->ptr + = (long) (*env)->GetLongField(env, arg->myObject, arg->id); + else { + if (strncmp((char *)dummyCSig, "J", 1) == 0) + *(jlong *)arg->ptr + = (jlong) (*env)->GetLongField(env, arg->myObject, arg->id); + else + *(jint *)arg->ptr + = (jint) (*env)->GetLongField(env, arg->myObject, arg->id); + } + } + sprintf (msg, "field = %s value(long) = %ld ", + arg->name,*(long *)arg->ptr); + MYDEBUG("getJavaField", msg); + break; + + case 'F': /* float */ + if (arg->isArray) { + arrayObject = (*env)->GetObjectField(env, arg->myObject, arg->id); + fbody = (*env)->GetFloatArrayElements(env, (jarray)arrayObject, 0); + memcpy (arg->ptr, fbody, sizeof(float)*arg->length); + (*env)->ReleaseFloatArrayElements(env, + (jarray)arrayObject, fbody, 0); + } else { + *(float *)arg->ptr + = (*env)->GetFloatField(env, arg->myObject, arg->id); + } + break; + + case 'D': /* double */ + if (arg->isArray) { + arrayObject = (*env)->GetObjectField(env, arg->myObject, arg->id); + dbody = (*env)->GetDoubleArrayElements(env, (jarray)arrayObject, 0); + memcpy (arg->ptr, dbody, sizeof(double)*arg->length); + (*env)->ReleaseDoubleArrayElements(env, + (jarray)arrayObject, dbody, 0); + } else { + *(double *)arg->ptr + = (*env)->GetDoubleField(env, arg->myObject, arg->id); + } + break; + + case 'L': /* object */ + if (strcmp(dummySig,"Ljava/lang/String;") == 0) { +int iu; + if (arg->isArray) { /* N/A */ + } else { + arg->tempString = + (*env)->GetObjectField(env, arg->myObject, arg->id); + if (arg->ptr != NULL) free (arg->ptr); + arg->ptr = (void *) + (*env)->GetStringUTFChars(env, arg->tempString, 0); +//printf("in JNI... "); +//for (iu=0; iu < arg->length; ++iu) printf("%02X ",*(((char *)arg->ptr)+iu)); +//printf("\n"); +/* Have to comment out the following line as it causes problems if the combined + string is bigger than 2048, the size of msg buffer. */ +/* sprintf(msg, "field = %s value(String) = %s", + arg->name,(char *)arg->ptr); */ + MYDEBUG("getJavaField", msg); + } + + } else if (strcmp(dummySig, "Ljava/lang/Byte;") == 0) { + tempObject = (*env)->GetObjectField(env, arg->myObject, arg->id); + *(char *)arg->ptr + = (*env)->CallByteMethod(env, tempObject, BvalID); + + } else if (strcmp(dummySig, "Ljava/lang/Short;") == 0) { + tempObject = (*env)->GetObjectField(env, arg->myObject, arg->id); + if (strncmp((char *)dummyCSig, "S", 1) == 0) /* CDF_INT2 */ + *(short *)arg->ptr + = (*env)->CallShortMethod(env, tempObject, SvalID); + else /* CDF_UINT1 */ + *(char *)arg->ptr + = (jbyte) (*env)->CallShortMethod(env, tempObject, SvalID); + + } else if (strcmp(dummySig, "Ljava/lang/Integer;") == 0) { + tempObject = (*env)->GetObjectField(env, arg->myObject, arg->id); + if (strncmp((char *)dummyCSig, "I", 1) == 0) /* CDF_INT4 */ + *(jint *)arg->ptr + = (jint) (*env)->CallIntMethod(env, tempObject, IvalID); + else /* CDF_UINT2 */ + *(short *)arg->ptr + = (short) (*env)->CallIntMethod(env, tempObject, IvalID); + + } else if (strcmp(dummySig, "Ljava/lang/Long;") == 0) { + tempObject = (*env)->GetObjectField(env, arg->myObject, arg->id); + if (!arg->isEntryorVariableData) + *(long *)arg->ptr + = (long) (*env)->CallLongMethod(env, tempObject, LvalID); + else { + if (strncmp((char *)dummyCSig, "J", 1) == 0) /* CDF_INT8 */ + *(jlong *)arg->ptr + = (jlong) (*env)->CallLongMethod(env, tempObject, LvalID); + else /* CDF_UINT4 */ + *(jint *)arg->ptr + = (jint) (*env)->CallLongMethod(env, tempObject, LvalID); + } + } else if (strcmp(dummySig, "Ljava/lang/Float;") == 0) { + tempObject = (*env)->GetObjectField(env, arg->myObject, arg->id); + *(float *)arg->ptr + = (*env)->CallFloatMethod(env, tempObject, FvalID); + + } else if (strcmp(dummySig, "Ljava/lang/Double;") == 0) { + tempObject = (*env)->GetObjectField(env, arg->myObject, arg->id); + *(double *)arg->ptr + = (*env)->CallDoubleMethod(env, tempObject, DvalID); + } + break; + + case '[': /* array */ + break; + + default: + MYDEBUG("getJavaField","unknown type"); + } + + exc = (*env)->ExceptionOccurred(env); + if (exc) { + printf("Exception in getJavaField\n"); + (*env)->ExceptionDescribe(env); + (*env)->ExceptionClear(env); + } +} /* getJavaField */ + +/* Function: setJavaField + * + * Purpose: Move the value out of the arg.ptr to the + * Java's instance variable. + * + * Parameters: + * env - Java VM pointer + * arg - An argument structure + * Returns: + * none (Should be CDFStatus) + * + */ +void setJavaField(JNIEnv *env, argument arg) { + + jthrowable exc; + jobject tempObject; + jmethodID tempMethod; + jlong *jbody; + jint *ibody; + jshort *sbody; + jbyte *bbody; + jfloat *fbody; + jdouble *dbody; + + int i; + char dummySig[50]; + char dummyCSig[50]; + + if (arg.isArray) MYDEBUG("setJavaField", "it is an array"); + if (arg.isEntryorVariableData) MYDEBUG("setJavaField", "it is an entry/variable data"); + + if (arg.isArray) + if (arg.isEntryorVariableData) { + strcpy(dummySig, arg.datasig+1); /* Skip "[" */ + strcpy(dummyCSig, arg.Csig+1); + } else + strcpy(dummySig, arg.sig+1); /* Skip "[" */ + else + if (arg.isEntryorVariableData) { + strcpy(dummySig, arg.datasig); + strcpy(dummyCSig, arg.Csig); + } else + strcpy(dummySig, arg.sig); + + sprintf(msg, "dummySig = %s", dummySig); + MYDEBUG("setJavaField", msg); + switch (dummySig[0]) { + case 'Z': /* boolean */ + break; + + case 'B': /* byte */ + if (arg.isArray) { + sprintf(msg,"setting byte array"); + tempObject = (*env)->GetObjectField(env, arg.myObject, arg.id); + bbody = + (*env)->GetByteArrayElements(env, (jbyteArray)tempObject, 0); + memcpy (bbody, (jbyte *) arg.ptr, arg.length); + (*env)->ReleaseByteArrayElements(env, tempObject, bbody, 0); + } else { + sprintf(msg,"setting byte var"); + (*env)->SetByteField(env, arg.myObject, arg.id, *(char *) arg.ptr); + } + break; + + case 'C': /* char */ + break; + + case 'S': /* short */ + if (arg.isArray) { + sprintf(msg,"setting short array"); + tempObject = (*env)->GetObjectField(env, arg.myObject, arg.id); + sbody = (*env)->GetShortArrayElements( + env, (jshortArray)tempObject, 0); + if (strncmp((char *)dummyCSig, "S", 1) == 0) { + memcpy (sbody, (jbyte *)arg.ptr, sizeof(short)*arg.length); + } else { + for (i=0; i< arg.length; i++) { + if (*((jbyte *) arg.ptr + i) >= 0) + sbody[i] = (jshort) *((jbyte *) arg.ptr + i); + else + sbody[i] = smax + (jshort) *((jbyte *) arg.ptr + i); + } + } + (*env)->ReleaseShortArrayElements(env, tempObject, sbody, 0); + } else { + sprintf(msg,"setting short var"); + if (strncmp((char *)dummyCSig, "S", 1) == 0) + (*env)->SetShortField (env, arg.myObject, arg.id, + *(short *)arg.ptr); + else { + jshort ss; + if (*(jbyte *) arg.ptr >= 0) + ss = (jshort) *(jbyte *) arg.ptr; + else + ss = smax + (jshort) *(jbyte *) arg.ptr; + (*env)->SetShortField (env, arg.myObject, arg.id, ss); + } + } + break; + + case 'I': /* integer */ + if (arg.isArray) { + sprintf(msg,"setting int array"); + tempObject = (*env)->GetObjectField(env, arg.myObject, arg.id); + ibody = (*env)->GetIntArrayElements(env, (jintArray)tempObject, 0); + if (strncmp((char *)dummyCSig, "I", 1) == 0) { + for (i=0; i< arg.length; i++) + ibody[i] = *((jint *) arg.ptr + i); + } else { + for (i=0; i< arg.length; i++) { + if (*((jshort *) arg.ptr + i) >= 0) + ibody[i] = (jint) *((jshort *) arg.ptr + i); + else + ibody[i] = imax + (jint) *((jshort *) arg.ptr + i); + } + } + (*env)->ReleaseIntArrayElements(env, tempObject, ibody, 0); + } else { + if (strncmp((char *)dummyCSig, "I", 1) == 0) + (*env)->SetIntField (env, arg.myObject, arg.id, + *(jint *) arg.ptr); + else { + jint ii = 0; + if (*(jshort *) arg.ptr >= 0) + ii = (jint) *(jshort *) arg.ptr; + else + ii = imax + (jint) *(jshort *) arg.ptr; + (*env)->SetIntField (env, arg.myObject, arg.id, ii); + } + } + break; + + case 'J': /* long */ + if (arg.isArray) { + tempObject = (*env)->GetObjectField(env, arg.myObject, arg.id); + jbody = (*env)->GetLongArrayElements(env, (jlongArray)tempObject, 0); + if (!arg.isEntryorVariableData) { + for (i=0; i= 0) + jbody[i] = (jlong) *((jint *) arg.ptr + i); + else + jbody[i] = jmax + (jlong) *((jint *) arg.ptr + i); + } + } + } + (*env)->ReleaseLongArrayElements(env, tempObject, jbody, 0); + } else { + sprintf(msg,"name = %s; sig = %s; val = %ld", + arg.name, arg.sig, *(long *) arg.ptr); + if (!arg.isEntryorVariableData) { + (*env)->SetLongField (env, arg.myObject, arg.id, + (jlong) (*(long *) arg.ptr)); + } else { + if (strncmp((char *)dummyCSig, "J", 1) == 0) + (*env)->SetLongField (env, arg.myObject, arg.id, + (jlong) (*(jlong *) arg.ptr)); + else { + jlong jj = 0; + if (*(jint *) arg.ptr >= 0) + jj = (jlong) *(jint *) arg.ptr; + else + jj = jmax + (jlong) *(jint *) arg.ptr; + (*env)->SetLongField (env, arg.myObject, arg.id, jj); + } + } + } + break; + + case 'F': /* float */ + if (arg.isArray) { + sprintf(msg,"setting float array"); + tempObject = (*env)->GetObjectField(env, arg.myObject, arg.id); + fbody = (*env)->GetFloatArrayElements (env, + (jfloatArray)tempObject, 0); + for (i=0; iReleaseFloatArrayElements(env, tempObject, fbody, 0); + } else { + sprintf(msg,"setting float var"); + (*env)->SetFloatField (env, arg.myObject, arg.id, + (jfloat) *(float *) arg.ptr); + } + break; + + case 'D': /* double */ + if (arg.isArray) { + sprintf(msg,"setting double array"); + tempObject = (*env)->GetObjectField(env, arg.myObject, arg.id); + dbody = (*env)->GetDoubleArrayElements(env, + (jdoubleArray)tempObject, 0); + for (i=0; iReleaseDoubleArrayElements(env, tempObject, dbody, 0); + } else { + sprintf(msg,"setting double var"); + (*env)->SetDoubleField (env, arg.myObject, arg.id, + (jdouble) *(double *) arg.ptr); + } + break; + + case 'L': /* object */ + if (strcmp(dummySig,"Ljava/lang/String;") == 0) { + if (arg.ptr != NULL) { + ((char *)arg.ptr)[arg.length - 1] = '\0'; +/* Have to comment out the following line as it causes problems if the combined + string is bigger than 2048, the size of msg buffer. */ +/* sprintf(msg,"name = %s; sig = %s val = %s\n", + arg.name, arg.sig, ((char *) arg.ptr)); */ +//printf("###### from CDF: value=%s (len=%d)\n",(char *)arg.ptr,(int)arg.length); fflush(stdout); + if (realChar == 0) { + jobject bb = (*env)->NewDirectByteBuffer(env, (void *) arg.ptr, + (jlong) arg.length-1); + jclass cls_Charset = (*env)->FindClass(env, "java/nio/charset/Charset"); + jmethodID mid_Charset_forName = (*env)->GetStaticMethodID(env, + cls_Charset, "forName", + "(Ljava/lang/String;)Ljava/nio/charset/Charset;"); + jobject charset = (*env)->CallStaticObjectMethod(env, cls_Charset, + mid_Charset_forName, (*env)->NewStringUTF(env, + "UTF-8")); + jmethodID mid_Charset_decode = (*env)->GetMethodID(env, cls_Charset, + "decode", "(Ljava/nio/ByteBuffer;)Ljava/nio/CharBuffer;"); + jobject cb = (*env)->CallObjectMethod(env, charset, + mid_Charset_decode, bb); + jclass cls_CharBuffer = (*env)->FindClass(env, "java/nio/CharBuffer"); + jmethodID mid_CharBuffer_toString = (*env)->GetMethodID(env, + cls_CharBuffer, "toString", "()Ljava/lang/String;"); + jstring str = (*env)->CallObjectMethod(env, cb, + mid_CharBuffer_toString); + (*env)->SetObjectField(env, arg.myObject, arg.id, str); + } else + (*env)->SetObjectField(env, arg.myObject, arg.id, + (*env)->NewStringUTF(env, (char *) arg.ptr)); + } + } else if (strcmp(dummySig, "Ljava/lang/Byte;") == 0) { + sprintf(msg,"building byte object"); + tempMethod = (*env)->GetMethodID(env, byteClass, "", "(B)V"); + tempObject = (*env)->NewObject(env, byteClass, tempMethod, + (jbyte) *(char *) arg.ptr); + (*env)->SetObjectField(env, arg.myObject, arg.id, tempObject); + + } else if (strcmp(dummySig, "Ljava/lang/Short;") == 0) { + sprintf(msg,"building short object"); + tempMethod = (*env)->GetMethodID(env, shortClass, "", "(S)V"); + if (!arg.isEntryorVariableData || + strncmp((char *)dummyCSig, "S", 1) == 0) { + tempObject = (*env)->NewObject(env, shortClass, tempMethod, + *(short *) arg.ptr); + } else { + jshort ss = 0; + if (*(jbyte *)arg.ptr >= 0) + ss = (jshort) *(jbyte *) arg.ptr; + else + ss = smax + (jshort) *(jbyte *) arg.ptr; + tempObject = (*env)->NewObject(env, shortClass, tempMethod, ss); + } + (*env)->SetObjectField(env, arg.myObject, arg.id, tempObject); + + } else if (strcmp(dummySig, "Ljava/lang/Integer;") == 0) { + sprintf(msg,"building int object"); + tempMethod = (*env)->GetMethodID(env, intClass, "", "(I)V"); + if (!arg.isEntryorVariableData || + strncmp((char *)dummyCSig, "I", 1) == 0) { + tempObject = (*env)->NewObject (env, intClass, tempMethod, + *(jint *) arg.ptr); + } else { + jint ii = 0; + if (*(jshort *) arg.ptr >= 0) + ii = (jint) *(jshort *) arg.ptr; + else + ii = imax + (jint) *(jshort *) arg.ptr; + tempObject = (*env)->NewObject (env, intClass, tempMethod, ii); + } + (*env)->SetObjectField(env, arg.myObject, arg.id, tempObject); + + } else if (strcmp(dummySig, "Ljava/lang/Long;") == 0) { + sprintf(msg,"building long object"); + tempMethod = (*env)->GetMethodID(env, longClass, "", "(J)V"); + if (!arg.isEntryorVariableData || + strncmp((char *)dummyCSig, "J", 1) == 0) { + tempObject = (*env)->NewObject (env, longClass, tempMethod, + (jlong) (*(jlong *) arg.ptr)); + } else { + jlong jj; + if (*(jint*)arg.ptr >= 0) + jj = (jlong) *(jint*)arg.ptr; + else { + jj = jmax + (jlong) *(jint*)arg.ptr; + } + tempObject = (*env)->NewObject (env, longClass, tempMethod, jj); + } + (*env)->SetObjectField(env, arg.myObject, arg.id, tempObject); + + } else if (strcmp(dummySig, "Ljava/lang/Float;") == 0) { + sprintf(msg,"building float object"); + tempMethod = (*env)->GetMethodID(env, floatClass, "", "(F)V"); + tempObject = (*env)->NewObject(env, floatClass, tempMethod, + (jfloat) *(float *) arg.ptr); + (*env)->SetObjectField(env, arg.myObject, arg.id, tempObject); + + } else if (strcmp(dummySig, "Ljava/lang/Double;") == 0) { + sprintf(msg,"building double object"); + tempMethod = (*env)->GetMethodID(env, doubleClass, "", "(D)V"); + tempObject = (*env)->NewObject(env, doubleClass, tempMethod, + (jdouble) *(double *) arg.ptr); + (*env)->SetObjectField(env, arg.myObject, arg.id, tempObject); + } + break; + + case '[': /* array */ + break; + + default: + sprintf(msg, "Unknown type; sig = %s",arg.sig); + } + MYDEBUG("setJavaField",msg); + + exc = (*env)->ExceptionOccurred(env); + if (exc) { + printf("Exception in setJavaField\n"); + (*env)->ExceptionDescribe(env); + (*env)->ExceptionClear(env); + } +} /* setJavaField */ + + +/* Function: argAlloc + * + * Purpose: determines the size needed for the pointer and mallocs + * the appropriate space. + * + * Parameters: + * arg - the argument to malloc space for the variable + * Returns: + * CDFStatus - success or failure + */ +CDFstatus argAlloc(JNIEnv *env, const char *signature, argument *arg) { + + int i; + CDFstatus status = CDF_OK; + + if (arg->length == -1) arg->length = 1; + + switch (signature[0]) { + case 'Z': /* boolean */ + break; + + case 'B': /* byte */ + sprintf(msg,"allocated space for %d byte variable(s)", (int) arg->length); + MYDEBUG("argAlloc",msg); + arg->ptr = (char *) malloc (sizeof(char) * arg->length); + for (i=0;ilength;i++) + *((char *)arg->ptr + i) = 0; + break; + + case 'C': /* char */ + sprintf(msg,"allocated space for %d char variable(s)", (int) arg->length); + MYDEBUG("argAlloc",msg); + arg->ptr = (char *) malloc (sizeof(char) * arg->length); + break; + + case 'S': /* short */ + sprintf(msg,"allocated space for %d short variable(s)", (int) arg->length); + MYDEBUG("argAlloc",msg); + arg->ptr = (short *) malloc (sizeof(short) * arg->length); + for (i=0; i < arg->length; i++) + *((short *)arg->ptr + i) = (short)0; + break; + + case 'I': /* integer */ + sprintf(msg,"allocated space for %d int variable(s)", (int) arg->length); + MYDEBUG("argAlloc",msg); + arg->ptr = (jint *) malloc (sizeof(jint) * arg->length); + for (i=0; i < arg->length; i++) + *((jint *)arg->ptr + i) = (jint) 0; + break; + + case 'J': /* long */ + sprintf(msg,"allocated space for %d long variable(s)", (int) arg->length); + MYDEBUG("argAlloc",msg); + if (!arg->isEntryorVariableData) { + arg->ptr = (long *) malloc (sizeof(long) * arg->length); + for (i=0; i < arg->length; i++) + *((long *)arg->ptr + i) = (long) 0; + } else { + arg->ptr = (jlong *) malloc (sizeof(jlong) * arg->length); + for (i=0; i < arg->length; i++) + *((jlong *)arg->ptr + i) = (jlong) 0; + } + break; + + case 'F': /* float */ + sprintf(msg,"allocated space for %d float variable(s)", (int) arg->length); + MYDEBUG("argAlloc",msg); + arg->ptr = (float *) malloc (sizeof(float) * arg->length); + for (i=0; i < arg->length; i++) + *((float *)arg->ptr + i) = 0.0; + break; + + case 'D': /* double */ + sprintf(msg,"allocated space for %d double variable(s)", (int) arg->length); + MYDEBUG("argAlloc",msg); + arg->ptr = (double *) malloc (sizeof(double) * arg->length); + for (i=0; i < arg->length; i++) + *((double *)arg->ptr + i) = 0; + break; + + case 'L': /* object */ + if (strcmp(signature,"Ljava/lang/String;") == 0) { + sprintf(msg,"allocated space for a %d long string", (int) arg->length); + MYDEBUG("argAlloc",msg); + arg->ptr = (void *) malloc (sizeof(char) * (arg->length)); + + } else if (strcmp(signature,"Ljava/lang/Byte;") == 0) { + sprintf(msg,"allocated space for %d byte object", (int) arg->length); + MYDEBUG("argAlloc",msg); + arg->ptr = (char *) malloc (sizeof(char) * arg->length); + for (i=0; i < arg->length; i++) + *((char *)arg->ptr + i) = 0; + + } else if (strcmp(signature,"Ljava/lang/Short;") == 0) { + sprintf(msg,"allocated space for %d short object", (int) arg->length); + MYDEBUG("argAlloc",msg); + arg->ptr = (short *) malloc (sizeof(short) * arg->length); + for (i=0; i < arg->length; i++) + *((short *)arg->ptr + i) = 0; + + } else if (strcmp(signature,"Ljava/lang/Integer;") == 0) { + sprintf(msg,"allocated space for %d int object", (int) arg->length); + MYDEBUG("argAlloc",msg); + arg->ptr = (jint *) malloc (sizeof(jint) * arg->length); + for (i=0; i < arg->length; i++) + *((jint *)arg->ptr + i) = 0; + + } else if (strcmp(signature,"Ljava/lang/Long;") == 0) { + sprintf(msg,"allocated space for %d long object", (int) arg->length); + MYDEBUG("argAlloc",msg); + if (!arg->isEntryorVariableData) { + arg->ptr = (long *) malloc (sizeof(long) * arg->length); + for (i=0; i < arg->length; i++) + *((long *)arg->ptr + i) = (long) 0; + } else { + arg->ptr = (jlong *) malloc (sizeof(jlong) * arg->length); + for (i=0; i < arg->length; i++) + *((jlong *)arg->ptr + i) = (jlong) 0; + } + + } else if (strcmp(signature,"Ljava/lang/Float;") == 0) { + sprintf(msg,"allocated space for %d float object", (int) arg->length); + MYDEBUG("argAlloc",msg); + arg->ptr = (float *) malloc (sizeof(float) * arg->length); + for (i=0; i < arg->length; i++) + *((float *)arg->ptr + i) = 0.0; + + } else if (strcmp(signature,"Ljava/lang/Double;") == 0) { + sprintf(msg,"allocated space for %d double object", (int) arg->length); + MYDEBUG("argAlloc",msg); + arg->ptr = (double *) malloc (sizeof(double) * arg->length); + for (i=0; i < arg->length; i++) + *((double *)arg->ptr + i) = 0; + } + break; + + case '[': /* array */ + arg->isArray = JNI_TRUE; + arg->length = (*env)->GetArrayLength(env, + (jarray)(*env)->GetObjectField(env, + arg->myObject, + arg->id)); + MYDEBUG("argAlloc", "calling self"); + status = argAlloc(env, signature+1, arg); /* Recursive call */ + break; + + default: + MYDEBUG("argAlloc","unknown type"); + } + + if (arg->ptr == NULL) { + MYDEBUG("argAlloc","malloc failed"); + return(BAD_MALLOC); + } + + return(status); +} + +/* Function: cleanArgument + * + * Purpose: clean up the memory and UTF strings used by the argument + * + * Parameters: + * env - The Java runtime environment + * arg - The argument to clean + * Returns: + * none + */ +void cleanArgument(JNIEnv *env, argument *arg) { + /* + * tempString is only used for certain String arguments. If it was used + * free it. + */ + + if ((!strcmp(arg->sig,"Ljava/lang/String;")) && arg->tempString != NULL) + /* a Java string variable like name or path */ + (*env)->ReleaseStringUTFChars(env, arg->tempString, (char *)arg->ptr); + else if (arg->datasig != NULL && + ((!strcmp(arg->datasig,"Ljava/lang/String;")) && arg->tempString != NULL)) + /* a Java data which contains a string value */ + (*env)->ReleaseStringUTFChars(env, arg->tempString, (char *)arg->ptr); + else /* other data type: a non-string Java variable or a non-string data object */ + free (arg->ptr); + + /* Free the name */ + (*env)->ReleaseStringUTFChars(env, arg->nameObject, arg->name); + (*env)->ReleaseStringUTFChars(env, arg->sigObject, arg->sig); + if (arg->isEntryorVariableData) + (*env)->ReleaseStringUTFChars(env, arg->dsObject, arg->datasig); + /* reinitialize to allow reuse */ + arg->ptr = NULL; + arg->isArray = JNI_FALSE; + arg->isEntryorVariableData = JNI_FALSE; + arg->length = -1; + arg->tempString = NULL; + +} +/* Function: ErrHandle + * + * Purpose: clean up the memory used by the argument(s) when + * an error that forces the function to return + * + * Parameters: + * status - The return status + * env - The Java runtime environment + * arg - The variable list of argument(s) to clean + * NULL - The end of variable argument list + * Returns: + * status + */ +#if defined(STDARG) +static CDFstatus ErrHandle (CDFstatus status, JNIEnv *env, ...) +#else +static CDFstatus ErrHandle (CDFstatus status, JNIEnv *env, va_alist) +va_dcl +#endif +{ + va_list ap; +#if defined(STDARG) + va_start (ap, env); +#else + VA_START (ap); +#endif + for (;;) { + argument *arg = va_arg (ap, argument *); + if (arg == NULL) { + va_end (ap); + return status; + } else + cleanArgument(env, arg); + } +} + + +/* Function: getItem + * + * Purpose: Setup the argument structure for the obj + * + * Parameters: + * env - the JNI runtime environment + * obj - the object for which the argument is setup. + * parent - the parent of the obj + * arg - a pointer to a blank argument structure + * + * Returns: + * CDFstatus - success or failure + */ +CDFstatus getItem(JNIEnv *env, jobject theCDF, jobject itemObj, jobject parent, argument *arg) { + + jobject temp1, temp2, temp3; + jclass parentClass = (*env)->GetObjectClass(env, parent); + jmethodID + vElemID = (*env)->GetMethodID(env, vecClass, "elementAt", + "(I)Ljava/lang/Object;"); + jthrowable exc; + CDFstatus status; + long dataType; + + /********************/ + /* Initialize */ + /********************/ + arg->isArray = JNI_FALSE; + arg->tempString = NULL; + arg->myObject = parent; + arg->datasig = NULL; + + MYDEBUG("getItem", "completed initialization."); + + /*******************************************/ + /* Make sure that the argument is a Vector */ + /*******************************************/ + if (((*env)->IsInstanceOf(env, itemObj, vecClass)) == JNI_FALSE) { + MYDEBUG("getItem","itemObj not a vector"); + return(BAD_FNC_OR_ITEM); + } + /**********************************************************/ + /* Get the name of the instance var out of the arg object */ + /**********************************************************/ + temp1 = (*env)->CallObjectMethod(env, itemObj, vElemID, 0); + exc = (*env)->ExceptionOccurred(env); + if (exc) { + printf("Exception in getItem\n"); + (*env)->ExceptionDescribe(env); + (*env)->ExceptionClear(env); + return(BAD_FNC_OR_ITEM); + } + arg->nameObject = temp1; + arg->name = (*env)->GetStringUTFChars(env, arg->nameObject, 0); + /*******************************************/ + /* Get the signature out of the arg object */ + /*******************************************/ + temp2 = (*env)->CallObjectMethod(env, itemObj, vElemID, 1); + exc = (*env)->ExceptionOccurred(env); + if (exc) { + printf("Exception in getItem2\n"); + (*env)->ExceptionDescribe(env); + (*env)->ExceptionClear(env); + return(BAD_FNC_OR_ITEM); + } + arg->sigObject = temp2; + arg->sig = (*env)->GetStringUTFChars(env, arg->sigObject, 0); + sprintf(msg,"(1) name = %s sig = %s", arg->name, arg->sig); + MYDEBUG("getItem", msg); + + /*********************************************/ + /* Get the field id of the instance variable */ + /*********************************************/ + arg->id = (*env)->GetFieldID(env, parentClass, arg->name, arg->sig); + CHECKNULL("field ID", arg->id); + MYDEBUG("getItem", "got Field ID"); + + arg->isEntryorVariableData = + (((*env)->IsAssignableFrom(env, dataClass, parentClass) && + (strcmp(arg->name, "_data") == 0)) || + ((*env)->IsAssignableFrom(env, entryClass, parentClass) && + (strcmp(arg->name, "data") == 0)) || + ((*env)->IsAssignableFrom(env, entryClass, parentClass) && + (strcmp(arg->name, "_data") == 0)) || + ((*env)->IsAssignableFrom(env, varClass, parentClass) && + (strcmp(arg->name, "padValue") == 0))); + if (arg->isEntryorVariableData) { + MYDEBUG("getItem", "got entry/variable data/pad value"); + temp3 = + (*env)->GetObjectField(env, parent, + (*env)->GetFieldID(env, parentClass, + "dataSignature", + "Ljava/lang/String;")); + exc = (*env)->ExceptionOccurred(env); + if (exc) { + printf("Exception in getItem 3\n"); + (*env)->ExceptionDescribe(env); + (*env)->ExceptionClear(env); + return(BAD_FNC_OR_ITEM); + } + arg->dsObject = temp3; + arg->datasig = (*env)->GetStringUTFChars(env, arg->dsObject, 0); + sprintf(msg,"datasig = %s", arg->datasig); + dataType = (long) (*env)->GetLongField(env, parent, + (*env)->GetFieldID(env, + parentClass, + "dataType", + "J")); + if (dataType == CDF_CHAR || dataType == CDF_UCHAR) + if (strncmp(arg->datasig, "[", 1) == 0) + strcpy(arg->Csig, "[B"); + else + strcpy(arg->Csig, "Ljava/lang/String;"); + + else if (dataType == CDF_BYTE || dataType == CDF_INT1 || + dataType == CDF_UINT1) + if (strncmp(arg->datasig, "[", 1) == 0) + strcpy(arg->Csig, "[B"); + else + strcpy(arg->Csig, "B"); + + else if (dataType == CDF_INT2 || dataType == CDF_UINT2) + if (strncmp(arg->datasig, "[", 1) == 0) + strcpy(arg->Csig, "[S"); + else + strcpy(arg->Csig, "S"); + + else if (dataType == CDF_INT4 || dataType == CDF_UINT4) + if (strncmp(arg->datasig, "[", 1) == 0) + strcpy(arg->Csig, "[I"); + else + strcpy(arg->Csig, "I"); + + else if (dataType == CDF_INT8 || dataType == CDF_TIME_TT2000) + if (strncmp(arg->datasig, "[", 1) == 0) + strcpy(arg->Csig, "[J"); + else + strcpy(arg->Csig, "J"); + + else if (dataType == CDF_REAL4 || dataType == CDF_FLOAT) + if (strncmp(arg->datasig, "[", 1) == 0) + strcpy(arg->Csig, "[F"); + else + strcpy(arg->Csig, "F"); + + else if (dataType == CDF_REAL8 || dataType == CDF_DOUBLE || + dataType == CDF_EPOCH) + if (strncmp(arg->datasig, "[", 1) == 0) + strcpy(arg->Csig, "[D"); + else + strcpy(arg->Csig, "D"); + + else if (dataType == CDF_EPOCH16) { + if (strncmp(arg->datasig, "[", 1) == 0) + strcpy(arg->Csig, "[D"); + else { + strcpy(arg->Csig, "D"); + arg->length = 2; + } + } + + MYDEBUG("getItem", msg); + if (strcmp(arg->datasig, "Ljava/lang/String;") == 0) + arg->length = + (jsize)(*env)->GetLongField(env, parent, + (*env)->GetFieldID(env, + parentClass, + "numElements", + "J")) + + 1; + status = argAlloc(env, arg->Csig, arg); + + if (!CheckStatus("getItem", 0)) return(status); + (*env)->ReleaseStringUTFChars(env, (jstring) temp3, 0); + return (CDF_OK); + } + + /**************************************************************/ + /* Allocate the appropriate amount of space for the variable */ + /**************************************************************/ + + if (strcmp(arg->name, "name") == 0 || strcmp(arg->name, "path") == 0) { + if (arg->length == -1) { /* Have to use the length of the passed string */ + if (strcmp(arg->name, "name") == 0) + temp3 = + (*env)->GetObjectField(env, parent, + (*env)->GetFieldID(env, parentClass, + "name", + "Ljava/lang/String;")); + else + temp3 = + (*env)->GetObjectField(env, parent, + (*env)->GetFieldID(env, parentClass, + "path", + "Ljava/lang/String;")); + arg->length = + (jsize)(*env)->GetStringUTFLength(env, (jstring) temp3); + + (*env)->ReleaseStringUTFChars(env, (jstring) temp3, 0); + } + } + status = argAlloc(env, arg->sig, arg); + if (!CheckStatus("getItem", 0)) return(status); + + return (CDF_OK); +} /* getItem */ + + +/* Function: addCDFid + * + * Purpose: addCDFid adds a CDF id to the list of maintained CDF ids. + * + * Parameters: + * id - the C CDFid to add to the list + * Returns: + * jid - the position in the CDF list where the id was added + * + * Note that items from the list may not be removed since they may cause the id of the + * CDF object to become out of sync with the native list. + * + * If this is done, then all the CDF objects will have to be synced, which may be + * difficult. + * + * Note that they may also be needed by the finalize method. + */ +jlong addCDFid(CDFid id) { + + cdfIDList *myListOfCDFs; + jlong i = 0; + + myListOfCDFs = listOfCDFs; + + if (listOfCDFs == NULL) { /* It's the first one */ + myListOfCDFs = (cdfIDList *) malloc (sizeof(cdfIDList)); + listOfCDFs = myListOfCDFs; + + } else { /* Find the end of the list and then add it */ + while (myListOfCDFs->next != NULL) { + i++; + myListOfCDFs = myListOfCDFs->next; + } + i++; + myListOfCDFs->next = (cdfIDList *) malloc (sizeof(cdfIDList)); + myListOfCDFs = myListOfCDFs->next; + } + myListOfCDFs->jid = i; + myListOfCDFs->nCDFs = (int)i+1; + myListOfCDFs->id = id; + myListOfCDFs->open = TRUE; + myListOfCDFs->next = NULL; + + return i; +} /* addCDFid */ + +/* Function: getCDFid + * + * Purpose: Get the jid-th CDFid out of the list + * + * Parameters: + * jid - position id of the CDF link list + * + * Returns: + * id - the C CDFid + */ +CDFid getCDFid (jlong jid) { + + cdfIDList *myListOfCDFs; + int i = 0; + + myListOfCDFs = listOfCDFs; + for (i=0; i < (int)jid; i++) + myListOfCDFs = myListOfCDFs->next; + return myListOfCDFs->id; /* Acutal CDF id, not jid */ +} /* getCDFid */ + +/* Function: removeCDFid + * + * Purpose: Mark the jid-th CDFid on the list as closed when the CDF is closed + * + * Parameters: + * jid - position id of the CDF link list + * + */ +void removeCDFid (jlong jid) { + + cdfIDList *myListOfCDFs; + int i; + + myListOfCDFs = listOfCDFs; + for (i=0; i < (int)jid; i++) + myListOfCDFs = myListOfCDFs->next; + + myListOfCDFs->open = FALSE; /* Mark it as closed */ +} /* removeCDFid */ + +/* Function: flipDataElements + * + * Purpose: Shuffle data elements in records from row to column or column + * to row for a multi-dimensional variable in a column-major CDF. + * + * Parameters: + * buffer - buffer pointer for record data + * direction - indicator, 1 for column-to-row, 2 for row-to-column + * + */ +CDFstatus flipDataElements (char * buffer, jint direction) { + + long majority, numdims, dimSizes[CDF_MAX_DIMS], reccount; + long dimVarys[CDF_MAX_DIMS]; + long dimcounts[CDF_MAX_DIMS]; + int ix; + int toflip; + CDFstatus statuz; + long numdimsx; + statuz = CDFlib (GET_, CDF_MAJORITY_, &majority, + zVAR_NUMDIMS_, &numdims, + zVAR_DIMSIZES_, dimSizes, + zVAR_DIMVARYS_, dimVarys, + CONFIRM_, zVAR_RECCOUNT_, &reccount, + zVAR_DIMCOUNTS_, dimcounts, + NULL_); + if (statuz != CDF_OK) return(statuz); + numdimsx = 0; + for (ix = 0; ix < (int) numdims; ix++) { + if (dimVarys[ix]) { + dimSizes[numdimsx] = dimSizes[ix]; + ++numdimsx; + } + } + toflip = 1; + if (majority == ROW_MAJOR) toflip = 0; + else if (numdimsx < 2) toflip = 0; + else if (reccount < 1) toflip = 0; + else { + for (ix = 0; ix < (int) numdimsx; ix++) { + if (dimSizes[ix] != dimcounts[ix]) { + toflip = 0; + break; + } + } + } + if (toflip == 1) { + long NvalueBytes, numelems, datatype; + long nValuesPerRecord = 1L, nBytesPerRecord; + char *tmpbuf; + statuz = CDFlib (GET_, zVAR_DATATYPE_, &datatype, + zVAR_NUMELEMS_, &numelems, + NULL_); + if (statuz != CDF_OK) return(statuz); + + for (ix = 0; ix < (int) numdims; ix++) { + if (dimVarys[ix] && dimcounts[ix] > 0) + nValuesPerRecord *= dimcounts[ix]; + } + NvalueBytes = numelems * CDFelemSize(datatype); + nBytesPerRecord = nValuesPerRecord * NvalueBytes; + tmpbuf = (char *) malloc ((size_t) nBytesPerRecord * + reccount); + for (ix = 0; ix < (int) reccount; ix++) { + size_t offset = (size_t) (ix * nBytesPerRecord); + if (direction == 1) + COLtoROW (buffer + offset, tmpbuf + offset, + numdimsx, dimcounts, NvalueBytes); + else + ROWtoCOL (buffer + offset, tmpbuf + offset, + numdimsx, dimcounts, NvalueBytes); + + } + memmove (buffer, tmpbuf, + (size_t) reccount * nBytesPerRecord); + free (tmpbuf); + } + return (CDF_OK); +} /* flipDataElements */ + +/* Function: cleanGlobalRefs + * + * Purpose: Clear the global references if no CDFs are still open. In this + * case, the CDFid link list are also cleared. + * + * Parameters: + * env - the Java runtime environment + * + */ +void cleanGlobalRefs (JNIEnv *env) { + + cdfIDList *myListOfCDFs; + + if (listOfCDFs == NULL) return; + /* Check if there is still at least one open CDF. If so, then return. */ + if (listOfCDFs->open) return; + myListOfCDFs = listOfCDFs; + while (myListOfCDFs->next != NULL) { + myListOfCDFs = myListOfCDFs->next; + if (myListOfCDFs->open) return; + } + + /* All CDFs on the link list are closed. So */ + /* clear the link list and global references */ + + while (listOfCDFs->next != NULL) { + myListOfCDFs = listOfCDFs->next; + free (listOfCDFs); + listOfCDFs = myListOfCDFs; + } + free (listOfCDFs); + listOfCDFs = NULL; + (*env)->DeleteGlobalRef(env, cdfClass); + (*env)->DeleteGlobalRef(env, varClass); + (*env)->DeleteGlobalRef(env, entryClass); + (*env)->DeleteGlobalRef(env, attrClass); + (*env)->DeleteGlobalRef(env, dataClass); + (*env)->DeleteGlobalRef(env, excClass); + + (*env)->DeleteGlobalRef(env, byteClass); + (*env)->DeleteGlobalRef(env, shortClass); + (*env)->DeleteGlobalRef(env, intClass); + (*env)->DeleteGlobalRef(env, longClass); + (*env)->DeleteGlobalRef(env, floatClass); + (*env)->DeleteGlobalRef(env, doubleClass); + (*env)->DeleteGlobalRef(env, strClass); + (*env)->DeleteGlobalRef(env, objClass); + (*env)->DeleteGlobalRef(env, vecClass); + + cdfClass = 0; + MYDEBUG("cleanGlobalRefs", "Global Refs deleted."); + return; +} /* cleanGlobalRefs */ + +/* Function: JAVAcdflib + * Purpose: JAVAcdflib is the main wrapper to CDFlib calls + * + * Parameters: + * env - the JNI runtime environment + * obj - the CDFObject on which the command is to be executed. + * cmdVector - the CDF cmd wrapped in a java.long.Vector + * jid - the java CDF id which contains the CDFObject + * Returns: + * status - the return status of the CDFlib call + */ +CDFstatus JAVAcdflib (JNIEnv *env, + jobject theCDF, + jobject obj, + jobject cmdVector, /* Command vector to process */ + long jid, /* CDF id in the link list */ + long function) { /* Function to be processed */ + + jclass + objClass = (*env)->GetObjectClass(env, obj); + jmethodID + vSizeID = (*env)->GetMethodID(env, vecClass, "size", "()I"), + vElemID = (*env)->GetMethodID(env, vecClass, "elementAt", "(I)Ljava/lang/Object;"); + + jobject nextItem; + jthrowable exc; + CDFid id; /* Only need for the close method. */ + CDFid oid; + CDFstatus status, status2; + + int i; + char *CDFname; + argument arg, arg2, arg3, arg4, arg5, arg6, arg7, arg8; + long item, /* Item (e.g. CDF_, ATTR_, etc.) */ + func; /* Function (e.g. CREATE_, OPEN_, etc. */ + jlong newID; /* Position id in the link list */ + + /****************************************/ + /* Get the value of the passed function */ + /****************************************/ + func = function; + + MYDEBUG("cdflib",">>>>>>>>>>>>>>>>>>>>>>"); + strcpy(msg, "vecClass is"); + if (vecClass == NULL) + strcat(msg, " null!?!"); + else + strcat(msg, " ok!"); + MYDEBUG("cdflib", msg); + + /**********************************************************************/ + /* Since the first item is processed by the calling routine, skip the */ + /* command and start processing item and its arguments */ + /**********************************************************************/ + i = 1; + + /***********************************************************************/ + /* Process until there are no more items to process in the cmdVector */ + /***********************************************************************/ + + arg.length = -1; + + while (func != NULL_) { + switch (func) { + + case OPEN_: /* Open CDF */ + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + if (isItem(nextItem)) { + + status = getFuncOrItem(env, nextItem, &item); + if (!CheckStatus("Java getFuncOrItem", 0)) return(status); + sprintf(msg,"func = %ld item = %ld status = %ld",func,item,status); + MYDEBUG("cdflib",msg); + + /************************/ + /* Get the CDF filename */ + /************************/ + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + arg.length = -1; /* Actual path length is determined in getItem */ + status = getItem(env, theCDF, nextItem, obj, &arg); + if (!CheckStatus("Java getItem", 0)) return(status); + getJavaField (env, &arg); + sprintf(msg,"filename = %s", ((char *) arg.ptr)); + MYDEBUG("cdflib", msg); + + /**************/ + /* Get the id */ + /**************/ + arg2.length = 1; + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + status = getItem(env, theCDF, nextItem, obj, &arg2); + if (!CheckStatus("Java getItem", 0)) return(status); + + /**************************************************/ + /* Perform the OPEN_ and place the CDF in zMODE/2 */ + /**************************************************/ + status = CDFlib(OPEN_, item, (char *)arg.ptr, &oid, + NULL_); + if (!CheckStatus("cdflib (OPEN_, CDF_)", 1)) + return (ErrHandle(status, env, &arg, &arg2, NULL)); + + /********************************************************/ + /* Set the CDF id returned by CDFlib (i.e. oid) and add */ + /* the position id of the link list (i.e. newID). */ + /********************************************************/ + newID = addCDFid(oid); + (*env)->SetLongField(env, obj, arg2.id, newID); + + cleanArgument(env, &arg); + cleanArgument(env, &arg2); + + MYDEBUG("cdflib", "Getting nextItem"); + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + exc = (*env)->ExceptionOccurred(env); + if (exc) { + printf("Exception in cdflib\n"); + (*env)->ExceptionDescribe(env); + (*env)->ExceptionClear(env); + } + CHECKNULL("nextItem",nextItem); + status2 = getFuncOrItem(env, nextItem, &item); + } else { + (*env)->ThrowNew(env, excClass, "Bad function or item"); + } + break; /* end OPEN_ */ + + case CLOSE_: /* Special case: only close CDFs */ + MYDEBUG("cdflib","closing the file"); + /********************************************/ + /* NEW Get the jid-th CDFid out of the list */ + /********************************************/ + id = getCDFid(jid); + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + + status = CDFlib(SELECT_, CDF_, id, + CLOSE_, CDF_, + NULL_); + + if (!CheckStatus("cdflib (CLOSE_, CDF_)", 1)) return(status); + + removeCDFid(jid); + MYDEBUG("cdflib", "Getting nextItem"); + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + exc = (*env)->ExceptionOccurred(env); + if (exc) { + printf("Exception in cdflib\n"); + (*env)->ExceptionDescribe(env); + (*env)->ExceptionClear(env); + } + CHECKNULL("nextItem",nextItem); + status2 = getFuncOrItem(env, nextItem, &item); + cleanGlobalRefs(env); + break; /* end CLOSE_ */ + + case CONFIRM_: + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + if (isItem(nextItem)) { + status2 = getFuncOrItem(env, nextItem, &item); + + while (item < NULL_) { + sprintf (msg,"func = %ld item = %ld status = %ld", + func,item,status2); + MYDEBUG("cdflib",msg); + + switch(item) { + + case CDF_READONLY_MODE_: + case CDF_DECODING_: + case CDF_CACHESIZE_: + case CDF_NEGtoPOSfp0_MODE_: + case CDF_zMODE_: + case COMPRESS_CACHESIZE_: + case STAGE_CACHESIZE_: + case gENTRY_: + case zENTRY_: + case ATTR_: + case zVAR_RECNUMBER_: + case zVAR_RECCOUNT_: + case zVAR_RECINTERVAL_: + case zVAR_CACHESIZE_: + case zVAR_RESERVEPERCENT_: + + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + status = getItem(env, theCDF, nextItem, obj, &arg); + if (!CheckStatus("cdflib (CONFIRM_ 1)", 0)) return(status); + + getJavaField(env, &arg); + + sprintf (msg,"confirming item %ld, id = %ld", + item,*(long *)arg.ptr); + MYDEBUG("cdflib",msg); + + status = CDFlib(CONFIRM_, item, (long *)arg.ptr, + NULL_); + if (!CheckStatus("cdflib (CONFIRM_ 2)", 1)) + return(ErrHandle(status, env, &arg, NULL)); + + setJavaField(env, arg); + cleanArgument(env, &arg); + break; + + case zENTRY_EXISTENCE_: + + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + status = getItem(env, theCDF, nextItem, obj, &arg); + if (!CheckStatus("cdflib (CONFIRM_)", 0)) return(status); + + getJavaField(env, &arg); + + sprintf (msg,"confirming item %ld, id = %ld", + item,*(long *)arg.ptr); + MYDEBUG("cdflib",msg); + + status = CDFlib(CONFIRM_, item, *(long *)arg.ptr, + NULL_); + if (!CheckStatus("cdflib (CONFIRM_)", 1)) + return(ErrHandle(status, env, &arg, NULL)); + + setJavaField(env, arg); + cleanArgument(env, &arg); + break; + + case ATTR_EXISTENCE_: + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + status = getItem(env, theCDF, nextItem, obj, &arg); + if (!CheckStatus("cdflib (CONFIRM_)", 0)) return(status); + + getJavaField(env, &arg); /* Attribute name */ + + sprintf (msg,"confirming item %ld, id = %ld", + item,*(long *)arg.ptr); + MYDEBUG("cdflib",msg); + status = CDFlib(CONFIRM_, item, (char *)arg.ptr, + NULL_); + if (!CheckStatus("cdflib (CONFIRM_)", 1)) + return(ErrHandle(status, env, &arg, NULL)); + + setJavaField(env, arg); + cleanArgument(env, &arg); + break; + + case zVAR_PADVALUE_: + case CDF_CHECKSUM_: + + status = CDFlib(CONFIRM_, item, + NULL_); + + if (!CheckStatus("cdflib (CONFIRM_)", 1)) return(status); + break; + + default: + MYDEBUG("cdflib","Can't deal with it yet"); + break; + } /* switch(item) */ + + MYDEBUG("cdflib", "Getting nextItem"); + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + exc = (*env)->ExceptionOccurred(env); + if (exc) { + printf("Exception in cdflib2\n"); + (*env)->ExceptionDescribe(env); + (*env)->ExceptionClear(env); + } + CHECKNULL("nextItem",nextItem); + status2 = getFuncOrItem(env, nextItem, &item); + } + } else { + (*env)->ThrowNew(env, excClass, "Bad function or item"); + } + break; /* end CONFIRM_ */ + + case CREATE_: + + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + if (isItem(nextItem)) { + status2 = getFuncOrItem(env, nextItem, &item); + while (item < NULL_) { + sprintf (msg,"func = %ld item = %ld status = %ld", + func,item,status2); + MYDEBUG("cdflib",msg); + + switch(item) { + + case ATTR_: + arg.length = -1; /* Actual name length is determined in getItem */ + arg2.length = arg3.length = -1; + + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + status = getItem(env, theCDF, nextItem, obj, &arg); + if (!CheckStatus("cdflib (CREATE_,ATTR_) 1", 0)) return(status); + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + status = getItem(env, theCDF, nextItem, obj, &arg2); + if (!CheckStatus("cdflib (CREATE_,ATTR_) 2", 0)) return(status); + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + status = getItem(env, theCDF, nextItem, obj, &arg3); + if (!CheckStatus("cdflib (CREATE_,ATTR_) 3", 0)) return(status); + + getJavaField(env, &arg); /* Attr name */ + getJavaField(env, &arg2); /* Attr scope */ + + status = CDFlib (CREATE_, ATTR_, (char *)arg.ptr, + *(long *)arg2.ptr, + arg3.ptr, + NULL_); + if (!CheckStatus("cdflib (CREATE_,ATTR_) 4", 1)) + return (ErrHandle(1, env, &arg, &arg2, &arg3, NULL)); + + setJavaField (env,arg3); /* Set the value of attrNum */ + + cleanArgument(env, &arg); + cleanArgument(env, &arg2); + cleanArgument(env, &arg3); + break; + + case CDF_: + arg.length = -1; /* Actual path length is determined in getItem */ + arg2.length = arg3.length = arg4.length = -1; + + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + status = getItem(env, theCDF, nextItem, obj, &arg); + if (!CheckStatus("cdflib (CREATE_,CDF_) 1", 0)) return(status); + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + status = getItem(env, theCDF, nextItem, obj, &arg2); + if (!CheckStatus("cdflib (CREATE_,CDF_) 2", 0)) return(status); + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + status = getItem(env, theCDF, nextItem, obj, &arg3); + if (!CheckStatus("cdflib (CREATE_,CDF_) 3", 0)) return(status); + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + status = getItem(env, theCDF, nextItem, obj, &arg4); + if (!CheckStatus("cdflib (CREATE_,CDF_) 4", 0)) return(status); + getJavaField(env, &arg); /* char *CDFname */ + getJavaField(env, &arg2); /* long numDims */ + getJavaField(env, &arg3); /* long dimSizes[] */ + + /**************************************************** + * When creating CDF files, the name should not have + * the ".cdf" or ".CDF" extension at the end. Check + * the name (in arg.ptr) to see if ".cdf" or ".CDF" + * is present and remove it if it is. + ***************************************************/ + + if (strcmp((char *)arg.ptr+arg.length-4,".cdf") == 0 || + strcmp((char *)arg.ptr+arg.length-4,".CDF") == 0) { + CDFname = malloc(arg.length - 4 + 1); + if (CDFname == NULL) return(BAD_MALLOC); + memmove(CDFname, arg.ptr, arg.length-4); + CDFname[arg.length-4] = NUL; + } else { + CDFname = malloc(arg.length+1); + if (CDFname == NULL) return(BAD_MALLOC); + strcpy(CDFname, arg.ptr); + } + + status = CDFlib(CREATE_, CDF_, CDFname, + *(long *)arg2.ptr, + arg3.ptr, + &oid, /* out-CDFid */ + NULL_); + free(CDFname); + if (!CheckStatus("cdflib (CREATE_,CDF_) 5", 1)) + return (ErrHandle(status, env, &arg, &arg2, &arg3, + &arg4, NULL)); + + /****************************************************/ + /* Add the oid (CDF id) returned by the CDFlib call */ + /* to the link list. */ + /****************************************************/ + newID = addCDFid(oid); + + /********************************/ + /* Set the CDF id field in Java */ + /********************************/ + *(long *)arg4.ptr = (long) newID; + + setJavaField(env,arg4); + + cleanArgument(env, &arg); + cleanArgument(env, &arg2); + cleanArgument(env, &arg3); + cleanArgument(env, &arg4); + break; + + case zVAR_: + arg.length = -1; /* Actual name length is determined in getItem */ + arg2.length = arg3.length = arg4.length = arg5.length = + arg6.length = arg7.length = arg8.length = -1; + + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + status = getItem(env, theCDF, nextItem, obj, &arg); + if (!CheckStatus("cdflib (CREATE_,VAR_) 1", 0)) return(status); + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + status = getItem(env, theCDF, nextItem, obj, &arg2); + if (!CheckStatus("cdflib (CREATE_,VAR_) 2", 0)) return(status); + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + status = getItem(env, theCDF, nextItem, obj, &arg3); + if (!CheckStatus("cdflib (CREATE_,VAR_) 3", 0)) return(status); + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + status = getItem(env, theCDF, nextItem, obj, &arg4); + if (!CheckStatus("cdflib (CREATE_,VAR_) 4", 0)) return(status); + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + status = getItem(env, theCDF, nextItem, obj, &arg5); + if (!CheckStatus("cdflib (CREATE_,VAR_) 5", 0)) return(status); + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + status = getItem(env, theCDF, nextItem, obj, &arg6); + if (!CheckStatus("cdflib (CREATE_,VAR_) 6", 0)) return(status); + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + status = getItem(env, theCDF, nextItem, obj, &arg7); + if (!CheckStatus("cdflib (CREATE_,VAR_) 7", 0)) return(status); + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + status = getItem(env, theCDF, nextItem, obj, &arg8); + if (!CheckStatus("cdflib (CREATE_,VAR_) 8", 0)) return(status); + + getJavaField(env, &arg); /* char *varName */ + getJavaField(env, &arg2); /* jlong dataType */ + getJavaField(env, &arg3); /* jlong numElements */ + getJavaField(env, &arg4); /* jlong numDims */ + getJavaField(env, &arg5); /* jlong dimSizes[] */ + getJavaField(env, &arg6); /* jlong recVary */ + getJavaField(env, &arg7); /* jlong dimVary[] */ + status = CDFlib(CREATE_, zVAR_, (char *)arg.ptr, + *(long *)arg2.ptr, + *(long *)arg3.ptr, + *(long *)arg4.ptr, + (long *) arg5.ptr, + *(long *)arg6.ptr, + (long *) arg7.ptr, + arg8.ptr, /* varNum */ + NULL_); + if (!CheckStatus("cdflib (CREATE_,VAR_) 9", 1)) + return (ErrHandle(1, env, &arg, &arg2, &arg3, + &arg4, &arg5, &arg6, &arg7, &arg8, + NULL)); + + setJavaField(env,arg8); /* Set the variable number */ + cleanArgument(env, &arg); + cleanArgument(env, &arg2); + cleanArgument(env, &arg3); + cleanArgument(env, &arg4); + cleanArgument(env, &arg5); + cleanArgument(env, &arg6); + cleanArgument(env, &arg7); + cleanArgument(env, &arg8); + break; + + default: + (*env)->ThrowNew(env, excClass, "Bad function or item"); + break; + } /* switch(item) */ + + MYDEBUG("cdflib", "Getting nextItem"); + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + exc = (*env)->ExceptionOccurred(env); + if (exc) { + printf("Exception in cdflib2\n"); + (*env)->ExceptionDescribe(env); + (*env)->ExceptionClear(env); + } + CHECKNULL("nextItem",nextItem); + status2 = getFuncOrItem(env, nextItem, &item); + } + } else { + (*env)->ThrowNew(env, excClass, "Bad function or item"); + } + break; /* end CREATE_ */ + + case DELETE_: + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + if (isItem(nextItem)) { + status2 = getFuncOrItem(env, nextItem, &item); + + while (item < NULL_) { + sprintf(msg,"func = %ld item = %ld status = %ld",func,item, + status2); + MYDEBUG("cdflib",msg); + + switch(item) { + + case ATTR_: + case CDF_: + case gENTRY_: + case zENTRY_: + case zVAR_: + status = CDFlib(DELETE_, item, NULL_); + if (!CheckStatus("cdflib (DELETE_) 1", 1)) return(status); + if (item == CDF_) removeCDFid(jid); + break; + + case zVAR_RECORDS_: + case zVAR_RECORDS_RENUMBER_: + arg.length = arg2.length = -1; + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + status = getItem(env, theCDF, nextItem, obj, &arg); + if (!CheckStatus("cdflib (DELETE_, VAR_RECORDS_) 1", 0)) + return(status); + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + status = getItem(env, theCDF, nextItem, obj, &arg2); + if (!CheckStatus("cdflib (DELETE_,VAR_RECORDS_) 2", 0)) + return(status); + + getJavaField(env, &arg); /* first record number */ + getJavaField(env, &arg2); /* last record number */ + + status = CDFlib(DELETE_, item, *(long *)arg.ptr, + *(long *)arg2.ptr, + NULL_); + if (!CheckStatus("cdflib (DELETE_, VAR_RECORDS_) 3", 1)) + return(ErrHandle(status, env, &arg, &arg2, NULL)); + + cleanArgument(env, &arg); + cleanArgument(env, &arg2); + break; + default: + (*env)->ThrowNew(env, excClass, "Function not implemented yet. Contact the CDFJava API developer for requests/questions"); + break; + } /* switch(item) */ + + MYDEBUG("cdflib", "Getting nextItem"); + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + exc = (*env)->ExceptionOccurred(env); + if (exc) { + printf("Exception in cdflib2\n"); + (*env)->ExceptionDescribe(env); + (*env)->ExceptionClear(env); + } + CHECKNULL("nextItem",nextItem); + status2 = getFuncOrItem(env, nextItem, &item); + } + } else { + (*env)->ThrowNew(env, excClass, "Bad function or item"); + } + break; /* end DELETE_ */ + + case SAVE_: + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + if (isItem(nextItem)) { + status2 = getFuncOrItem(env, nextItem, &item); + + while (item < NULL_) { + sprintf(msg,"func = %ld item = %ld status = %ld",func,item, + status2); + MYDEBUG("cdflib",msg); + + switch(item) { + + case CDF_: + status = CDFlib(SAVE_, item, NULL_); + if (!CheckStatus("cdflib (SAVE_) 1", 1)) return(status); + break; + default: + (*env)->ThrowNew(env, excClass, "Function not implemented yet. Contact the CDFJava API developer for requests/questions"); + break; + } /* switch(item) */ + MYDEBUG("cdflib", "Getting nextItem"); + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + exc = (*env)->ExceptionOccurred(env); + if (exc) { + printf("Exception in cdflib2\n"); + (*env)->ExceptionDescribe(env); + (*env)->ExceptionClear(env); + } + CHECKNULL("nextItem",nextItem); + status2 = getFuncOrItem(env, nextItem, &item); + } + } else { + (*env)->ThrowNew(env, excClass, "Bad function or item"); + } + break; /* end SAVE_ */ + + case GET_: + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + if (isItem(nextItem)) { + status2 = getFuncOrItem(env, nextItem, &item); + realChar = 0; + while (item < NULL_) { + + sprintf(msg,"func = %ld item = %ld status = %ld",func,item, + status2); + MYDEBUG("cdflib",msg); + + switch(item) { + + case ATTR_NAME_: + case ATTR_SCOPE_: + case ATTR_MAXgENTRY_: + case ATTR_MAXzENTRY_: + case ATTR_NUMgENTRIES_: + case ATTR_NUMzENTRIES_: + case CDF_COPYRIGHT_: + case CDF_ENCODING_: + case CDF_FORMAT_: + case CDF_INCREMENT_: + case CDF_MAJORITY_: + case CDF_NUMATTRS_: + case CDF_NUMgATTRS_: + case CDF_NUMvATTRS_: + case CDF_NUMrVARS_: + case CDF_NUMzVARS_: + case CDF_VERSION_: + case CDF_RELEASE_: + case CDF_CHECKSUM_: + case CDF_LEAPSECONDLASTUPDATED_: + case gENTRY_DATATYPE_: + case gENTRY_NUMELEMS_: + case zENTRY_DATATYPE_: + case zENTRY_NUMELEMS_: + case zENTRY_NUMSTRINGS_: + case zVAR_NAME_: + case zVAR_NUMELEMS_: + case zVAR_DATATYPE_: + case zVAR_NUMDIMS_: + case zVAR_RECVARY_: + case zVAR_DIMVARYS_: + case zVAR_DIMSIZES_: + case zVAR_MAXREC_: + case zVAR_BLOCKINGFACTOR_: + case zVAR_MAXallocREC_: + case zVAR_NUMallocRECS_: + case zVAR_NUMRECS_: + case zVAR_SPARSERECORDS_: + case zVARs_MAXREC_: + case LIB_COPYRIGHT_: + case LIB_INCREMENT_: + case LIB_RELEASE_: + case LIB_VERSION_: + case LIB_subINCREMENT_: + if (item == CDF_COPYRIGHT_ || item == LIB_COPYRIGHT_) { + realChar = 1; + arg.length = CDF_COPYRIGHT_LEN + 1; + } + if (item == ATTR_NAME_) { + realChar = 1; + if (lib_ver == 2 || CDFgetFileBackward()) + arg.length = CDF_ATTR_NAME_LEN + 1; + else + arg.length = CDF_ATTR_NAME_LEN256 + 1; + } + if (item == zVAR_NAME_) { + realChar = 1; + if (lib_ver == 2 || CDFgetFileBackward()) + arg.length = CDF_VAR_NAME_LEN + 1; + else + arg.length = CDF_VAR_NAME_LEN256 + 1; + } + if (item == LIB_subINCREMENT_) { + realChar = 1; + arg.length = 2; + } + + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + + status = getItem(env, theCDF, nextItem, obj, &arg); + if (!CheckStatus("cdflib (GET_) 1", 0)) return(status); + + status = CDFlib(GET_, item, arg.ptr, NULL_); + if (!CheckStatus("cdflib (GET_) 2", 1)) + return(ErrHandle(status, env, &arg, NULL)); + + setJavaField(env,arg); + cleanArgument(env, &arg); + + break; + + case ATTR_NUMBER_: + if (lib_ver == 2 || CDFgetFileBackward()) + arg.length = CDF_ATTR_NAME_LEN256+1; + else + arg.length = CDF_ATTR_NAME_LEN+1; + arg2.length = -1; + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + status = getItem(env, theCDF, nextItem, obj, &arg); + if (!CheckStatus("cdflib (GET_, ATTR_NUMBER_) 1", 0)) + return(status); + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + status = getItem(env, theCDF, nextItem, obj, &arg2); + if (!CheckStatus("cdflib (GET_,ATTR_NUMBER_) 2", 0)) + return(status); + + getJavaField(env, &arg); /* Attribute name */ + + status = CDFlib(GET_, ATTR_NUMBER_, (char *)arg.ptr, + arg2.ptr, + NULL_); + if (!CheckStatus("cdflib (GET_, ATTR_NUMBER_) 3", 1)) + return(ErrHandle(status, env, &arg, &arg2, NULL)); + + setJavaField(env,arg2); /* Set the attribute number */ + cleanArgument(env, &arg); + cleanArgument(env, &arg2); + break; + + case zVAR_ALLOCATEDFROM_: + case zVAR_ALLOCATEDTO_: + arg.length = arg2.length = -1; + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + status = getItem(env, theCDF, nextItem, obj, &arg); + if (!CheckStatus("cdflib (GET_, ALLOCATEDFROM_/TO_) 1", 0)) + return(status); + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + status = getItem(env, theCDF, nextItem, obj, &arg2); + if (!CheckStatus("cdflib (GET_,ALLOCATEDFROM_/TO_) 2", 0)) + return(status); + + getJavaField(env, &arg); /* start record number */ + + status = CDFlib(GET_, item, *(long *)arg.ptr, + arg2.ptr, + NULL_); + if (!CheckStatus("cdflib (GET_, ALLOCATEDFROM_/TO_) 3", 1)) + return(ErrHandle(status, env, &arg, &arg2, NULL)); + + setJavaField(env,arg2); /* Set the last record number */ + cleanArgument(env, &arg); + cleanArgument(env, &arg2); + break; + + case gENTRY_DATA_: + case zENTRY_DATA_: + case zVAR_DATA_: + case zVAR_HYPERDATA_: + case zVAR_PADVALUE_: + if (item == zVAR_PADVALUE_) realChar = 1; + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + status = getItem(env, theCDF, nextItem, obj, &arg); + if (!CheckStatus("cdflib (GET_, ENTRY/VARIABLE_DATA_) 1", 0)) + return(status); + + status = CDFlib (GET_, item, (void *) arg.ptr, + NULL_); + + if (!CheckStatus("cdflib (GET_,ENTRY/VARIABLE_DATA_) 2", 1)) + return(ErrHandle(status, env, &arg, NULL)); + + if (item == zVAR_HYPERDATA_) { + status2 = flipDataElements((char *) arg.ptr, 1); + } + setJavaField(env,arg); /* Set the attribute entry data */ + cleanArgument(env, &arg); + break; + + case CDF_COMPRESSION_: + case rVAR_COMPRESSION_: + case zVAR_COMPRESSION_: + arg.length = arg2.length = arg3.length = -1; + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + status = getItem(env, theCDF, nextItem, obj, &arg); + if (!CheckStatus("cdflib (GET_, COMPRESSION_) 1", 0)) + return(status); + + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + status = getItem(env, theCDF, nextItem, obj, &arg2); + if (!CheckStatus("cdflib (GET_, COMPRESSION_) 2", 0)) + return(status); + + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + status = getItem(env, theCDF, nextItem, obj, &arg3); + if (!CheckStatus("cdflib (GET_, COMPRESSION_) 3", 0)) + return(status); + + status = CDFlib(GET_, item, arg.ptr, + arg2.ptr, + arg3.ptr, + NULL_); + if (!CheckStatus("cdflib (GET_, COMPRESSION_) 4", 1)) + return (ErrHandle(status, env, &arg, &arg2, &arg3, + NULL)); + + setJavaField(env,arg); /* long *cType */ + setJavaField(env,arg2); /* long cParms[CDF_MAX_PARMS] */ + setJavaField(env,arg3); /* long *cPct */ + cleanArgument(env, &arg); + cleanArgument(env, &arg2); + cleanArgument(env, &arg3); + break; + + default: + MYDEBUG("cdflib","Can't deal with it yet"); + break; + } /* switch(item) */ + + MYDEBUG("cdflib", "Getting nextItem"); + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + exc = (*env)->ExceptionOccurred(env); + if (exc) { + printf("Exception in cdflib2\n"); + (*env)->ExceptionDescribe(env); + (*env)->ExceptionClear(env); + } + CHECKNULL("nextItem",nextItem); + status2 = getFuncOrItem(env, nextItem, &item); + } + } else { + (*env)->ThrowNew(env, excClass, "Bad function or item"); + } + break; /* end GET_ */ + + case PUT_: + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + if (isItem(nextItem)) { + status2 = getFuncOrItem(env, nextItem, &item); + + while (item < NULL_) { + sprintf (msg,"func = %ld item = %ld status = %ld", + func,item,status2); + MYDEBUG("cdflib",msg); + switch(item) { + + case ATTR_NAME_: + case zVAR_NAME_: /* for 1 pointer variable input */ + arg.length = -1; /* Actual name length is determined in getItemm */ + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + status = getItem(env, theCDF, nextItem, obj, &arg); + if (!CheckStatus("cdflib (PUT_) 1", 0)) return(status); + + getJavaField(env, &arg); + + status = CDFlib(PUT_, item, (char *)arg.ptr, NULL_); + if (!CheckStatus("cdflib (PUT_) 2", 1)) + return(ErrHandle(status, env, &arg, NULL)); + + cleanArgument(env, &arg); + break; + + case ATTR_SCOPE_: + case CDF_ENCODING_: + case CDF_MAJORITY_: + case CDF_FORMAT_: + case CDF_CHECKSUM_: + case CDF_LEAPSECONDLASTUPDATED_: + case zVAR_ALLOCATERECS_: + case zVAR_BLOCKINGFACTOR_: + case zVAR_RECVARY_: + case zVAR_SPARSERECORDS_: + case zVAR_INITIALRECS_: /* for 1 long variable as input */ + + arg.length = -1; + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + status = getItem(env, theCDF, nextItem, obj, &arg); + if (!CheckStatus("cdflib (PUT_,CDF_ENC/MAJ_/FOR_/zVAR_ALLOC_/BLOCK_/INIT_/SPARSE_/RECVARY_) 1", 0)) + return(status); + getJavaField(env, &arg); + status = CDFlib(PUT_, item, *(long *)arg.ptr, + NULL_); + if (!CheckStatus("cdflib (PUT_,CDF_ENC/MAJ_/FOR_/zVAR_ALLOC_/BLOCK_/INIT_/SPARSE_/RECVARY_) 2", 1)) + return (ErrHandle(status, env, &arg, NULL)); + + cleanArgument(env, &arg); + break; + + case zENTRY_DATA_: + case gENTRY_DATA_: /* for 2 long and 1 pointer variables input */ + arg.length = arg2.length = arg3.length = -1; + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + status = getItem(env, theCDF, nextItem, obj, &arg); + if (!CheckStatus("cdflib (PUT_,ENTRY_DATA_) 1", 0)) + return(status); + + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + status = getItem(env, theCDF, nextItem, obj, &arg2); + if (!CheckStatus("cdflib (PUT_,ENTRY_DATA_) 2", 0)) + return(status); + + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + + status = getItem(env, theCDF, nextItem, obj, &arg3); + if (!CheckStatus("cdflib (PUT_,ENTRY_DATA_) 3", 0)) + return(status); + + getJavaField(env, &arg); /* long dataType */ + + getJavaField(env, &arg2); /* long numElements */ + + getJavaField(env, &arg3); /* void *data */ + + status = CDFlib(PUT_, item, *(long *)arg.ptr, + *(long *)arg2.ptr, + arg3.ptr, + NULL_); + if (!CheckStatus("cdflib (PUT_,ENTRY_DATA_) 4", 1)) + return (ErrHandle(status, env, &arg, &arg2, &arg3, + NULL)); + + cleanArgument(env, &arg); + cleanArgument(env, &arg2); + cleanArgument(env, &arg3); + break; + + case gENTRY_DATASPEC_: + case zENTRY_DATASPEC_: + case zVAR_DATASPEC_: + case zVAR_ALLOCATEBLOCK_: /* for 2 long variables input */ + arg.length = arg2.length = -1; + + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + status = getItem(env, theCDF, nextItem, obj, &arg); + + if (!CheckStatus("cdflib (PUT_,g/zENTRY_DATASPEC_|zVAR_DATASPEC_|zVAR_ALLOCATEBLOCK_) 1", 0)) + return(status); + + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + status = getItem(env, theCDF, nextItem, obj, &arg2); + if (!CheckStatus("cdflib (PUT_,g/zENTRY_DATASPEC_|zVAR_DATASPEC_|zVAR_ALLOCATEBLOCK_) 2", 0)) + return(status); + + getJavaField(env, &arg); /* long firstRecord */ + getJavaField(env, &arg2); /* long lastRecord */ + + status = CDFlib(PUT_, item, *(long *)arg.ptr, + *(long *)arg2.ptr, + NULL_); + if (!CheckStatus("cdflib (PUT_,g/zENTRY_DATASPEC_|zVAR_DATASPEC_|zVAR_ALLOCATEBLOCK_) 3", 1)) + return (ErrHandle(status, env, &arg, &arg2, NULL)); + + cleanArgument(env, &arg); + cleanArgument(env, &arg2); + break; + + case zVAR_PADVALUE_: + case zVAR_DATA_: + case zVAR_HYPERDATA_: /* for 1 pointer variable for input */ + + arg.length = -1; + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + status = getItem(env, theCDF, nextItem, obj, &arg); + if (!CheckStatus("cdflib (PUT_,zVAR_PADVALUE_/_DATA_/_HYPERDATA_) 1", 0)) + return(status); + + getJavaField(env, &arg); + + if (item == zVAR_HYPERDATA_) { + status2 = flipDataElements((char *) arg.ptr, 2); + } + + status = CDFlib(PUT_, item, (void *)arg.ptr, + NULL_); + if (!CheckStatus("cdflib (PUT_,zVAR_PADVALUE_/_DATA_/_HYPERDATA_) 2", 1)) + return (ErrHandle(status, env, &arg, NULL)); + + cleanArgument(env, &arg); + break; + + case CDF_COMPRESSION_: + case zVAR_COMPRESSION_: /* for 1 long and 1 pointer variables input */ + + arg.length = arg2.length = -1; + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + status = getItem(env, theCDF, nextItem, obj, &arg); + if (!CheckStatus("cdflib (PUT_,CDF_/zVAR_COMPRESSION_) 1", 0)) + return(status); + + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + status = getItem(env, theCDF, nextItem, obj, &arg2); + if (!CheckStatus("cdflib (PUT_,CDF_/zVAR_COMPRESSION_) 2", 0)) + return(status); + + getJavaField(env, &arg); + + getJavaField(env, &arg2); + + status = CDFlib(PUT_, item, *(long *)arg.ptr, arg2.ptr, + NULL_); + if (!CheckStatus("cdflib (PUT_,CDF_/zVAR_COMPRESSION_) 3", 1)) + return (ErrHandle(status, env, &arg, &arg2, NULL)); + + cleanArgument(env, &arg); + cleanArgument(env, &arg2); + break; + + case zVAR_DIMVARYS_: /* for 1 pointer variable input */ + + arg.length = -1; + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + status = getItem(env, theCDF, nextItem, obj, &arg); + if (!CheckStatus("cdflib (PUT_,zVAR_DIMVARYS_) 1", 0)) + return(status); + + getJavaField(env, &arg); + + status = CDFlib(PUT_, item, arg.ptr, + NULL_); + if (!CheckStatus("cdflib (PUT_,zVAR_DIMVARYS_) 2", 1)) + return (ErrHandle(status, env, &arg, NULL)); + + cleanArgument(env, &arg); + break; + + default: + (*env)->ThrowNew(env, excClass, "Bad function or item"); + break; + } /* switch(item) */ + + MYDEBUG("cdflib", "Getting nextItem"); + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + exc = (*env)->ExceptionOccurred(env); + if (exc) { + printf("Exception in cdflib2\n"); + (*env)->ExceptionDescribe(env); + (*env)->ExceptionClear(env); + } + CHECKNULL("nextItem",nextItem); + status2 = getFuncOrItem(env, nextItem, &item); + } + } else { + (*env)->ThrowNew(env, excClass, "Bad function or item"); + } + break; /* end PUT_ */ + + /******************************************************************/ + /* SELECT_ */ + /******************************************************************/ + case SELECT_: + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + if (isItem(nextItem)) { + status2 = getFuncOrItem(env, nextItem, &item); + + while (item < NULL_) { + sprintf (msg,"func = %ld item = %ld status = %ld", + func,item,status2); + MYDEBUG("cdflib",msg); + + switch(item) { + + case CDF_READONLY_MODE_: + case CDF_DECODING_: + case CDF_CACHESIZE_: + case CDF_NEGtoPOSfp0_MODE_: + case CDF_zMODE_: + case COMPRESS_CACHESIZE_: + case STAGE_CACHESIZE_: + case gENTRY_: + case zENTRY_: + case ATTR_: + case zVAR_RECNUMBER_: + case zVAR_RECCOUNT_: + case zVAR_RECINTERVAL_: + case zVAR_CACHESIZE_: + case zVAR_RESERVEPERCENT_: + case CDF_: + case zVAR_: + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + status = getItem(env, theCDF, nextItem, obj, &arg); + getJavaField(env, &arg); + if (!CheckStatus("cdflib (SELECT_)", 0)) + return(status); + + if (item == CDF_) { + id = getCDFid(jid); + status = CDFlib(SELECT_, CDF_, id, NULL_); + } else { + status = CDFlib(SELECT_, item, *(long *)arg.ptr, + NULL_); + } + if (!CheckStatus("cdflib (SELECT_)", 1)) + return(ErrHandle(status, env, &arg, NULL)); + + cleanArgument(env, &arg); + break; + + case zVAR_DIMINDICES_: + case zVAR_DIMCOUNTS_: + case zVAR_DIMINTERVALS_: + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + status = getItem(env, theCDF, nextItem, obj, &arg); + getJavaField(env, &arg); + if (!CheckStatus("cdflib (SELECT_)", 0)) + return(status); + + status = CDFlib(SELECT_, item, (long *)arg.ptr, + NULL_); + if (!CheckStatus("cdflib (SELECT_)", 1)) + return(ErrHandle(status, env, &arg, NULL)); + + cleanArgument(env, &arg); + break; + + default: + MYDEBUG("cdflib","Can't deal with it yet"); + break; + } /* switch(item) */ + + MYDEBUG("cdflib", "Getting nextItem"); + nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); + exc = (*env)->ExceptionOccurred(env); + if (exc) { + printf("Exception in cdflib2\n"); + (*env)->ExceptionDescribe(env); + (*env)->ExceptionClear(env); + } + CHECKNULL("nextItem",nextItem); + status2 = getFuncOrItem(env, nextItem, &item); + } + } else { + (*env)->ThrowNew(env, excClass, "Bad function or item"); + } + break; /* end SELECT_ */ + + default: + (*env)->ThrowNew(env, excClass, "Bad function or item"); + break; + } /* switch(func) */ + func = item; + sprintf(msg, "The next func = %ld",func); + MYDEBUG("cdflib", msg); + + exc = (*env)->ExceptionOccurred(env); + if (exc) { + printf("Exception in cdflib3\n"); + (*env)->ExceptionDescribe(env); + (*env)->ExceptionClear(env); + return(BAD_FNC_OR_ITEM); + } + + } /* while(func!=NULL_) */ + MYDEBUG("cdflib","<<<<<<<<<<<<<<<<<<<<"); + return(status); + +} /* end JAVAcdflib */ + +/********************************************* + ** ** + ** JNI Methods ** + ** ** + *********************************************/ + +/* Function: cdfNativeLib + * Class: CDFNativeLibrary + * Package: gsfc.nssdc.cdf + * + * Purpose: This is the main wrapper for the native implementation of the + * CDFJava API + * + * Parameters: + * in: env - The Java environment pointer + * in: nativeLibraryObject - The instance of CDFNativeLibrary making + * the call + * in: theCDF - The CDF to which the object belongs + * in: obj - The instance of a CDFObject on which the cmds should be + * executed + * in: cmdVector - A java.util.Vector that contains the CDF command + * to perform + * Returns: + * void + */ +JNIEXPORT void JNICALL +Java_gsfc_nssdc_cdf_CDFNativeLibrary_cdfNativeLib(JNIEnv *env, + jobject nativeLibraryObject, + jobject theCDF, + jobject obj, + jobject cmdVector) { + + jclass + myobjClass = (*env)->GetObjectClass(env, obj), + cmdClass = (*env)->GetObjectClass(env, cmdVector); + + jfieldID cdfidID, idID; + jmethodID vElemID; + jobject firstCmd, firstArg; + + long cdfid, /* CDF id assigned by the CDFlib routine */ + objType, /* CDF object type */ + func, /* CDF function (e.g. CREATE_, GET_, etc) */ + newArg; /* Argument after function */ + + + /* Needed for save operation without closing a CDF file */ + struct CDFstruct *cdfstruct; + CDFid id0; + CDFstatus status; + + /* For the first call to here, set up all global references */ + if (cdfClass == 0) { + + jclass cdfClass1, varClass1, entryClass1, attrClass1, dataClass1, + excClass1; + jclass byteClass1, shortClass1, intClass1, longClass1, floatClass1, + doubleClass1, strClass1, vecClass1, objClass1; + + cdfClass1 = (*env)->FindClass(env, "gsfc/nssdc/cdf/CDF"), + varClass1 = (*env)->FindClass(env, "gsfc/nssdc/cdf/Variable"), + entryClass1 = (*env)->FindClass(env, "gsfc/nssdc/cdf/Entry"), + attrClass1 = (*env)->FindClass(env, "gsfc/nssdc/cdf/Attribute"), + dataClass1 = (*env)->FindClass(env, "gsfc/nssdc/cdf/CDFData"), + excClass1 = (*env)->FindClass(env, "gsfc/nssdc/cdf/CDFException"), + + vecClass1 = (*env)->FindClass(env, "java/util/Vector"), + byteClass1 = (*env)->FindClass(env, "java/lang/Byte"), + shortClass1 = (*env)->FindClass(env, "java/lang/Short"), + intClass1 = (*env)->FindClass(env, "java/lang/Integer"), + longClass1 = (*env)->FindClass(env, "java/lang/Long"), + floatClass1 = (*env)->FindClass(env, "java/lang/Float"), + doubleClass1 = (*env)->FindClass(env, "java/lang/Double"), + strClass1 = (*env)->FindClass(env, "java/lang/String"), + objClass1 = (*env)->FindClass(env, "java/lang/Object"); + + cdfClass = (*env)->NewGlobalRef(env, cdfClass1); + varClass = (*env)->NewGlobalRef(env, varClass1); + entryClass = (*env)->NewGlobalRef(env, entryClass1); + attrClass = (*env)->NewGlobalRef(env, attrClass1); + dataClass = (*env)->NewGlobalRef(env, dataClass1); + excClass = (*env)->NewGlobalRef(env, excClass1); + + vecClass = (*env)->NewGlobalRef(env, vecClass1); + byteClass = (*env)->NewGlobalRef(env, byteClass1); + shortClass = (*env)->NewGlobalRef(env, shortClass1); + intClass = (*env)->NewGlobalRef(env, intClass1); + longClass = (*env)->NewGlobalRef(env, longClass1); + floatClass = (*env)->NewGlobalRef(env, floatClass1); + doubleClass = (*env)->NewGlobalRef(env, doubleClass1); + strClass = (*env)->NewGlobalRef(env, strClass1); + objClass = (*env)->NewGlobalRef(env, objClass1); + + BvalID = (*env)->GetMethodID(env, byteClass, "byteValue", "()B"); + SvalID = (*env)->GetMethodID(env, shortClass, "shortValue", "()S"); + IvalID = (*env)->GetMethodID(env, intClass, "intValue", "()I"); + LvalID = (*env)->GetMethodID(env, longClass, "longValue", "()J"); + FvalID = (*env)->GetMethodID(env, floatClass, "floatValue", "()F"); + DvalID = (*env)->GetMethodID(env, doubleClass, "doubleValue", "()D"); + + cdfStatusID = (*env)->GetFieldID(env, cdfClass, "cdfStatus", "J"); + infoWarnID = (*env)->GetFieldID(env, cdfClass, "infoWarning", "J"); + + status = CDFlib(GET_, LIB_VERSION_, &lib_ver, + NULL_); + + } + + if (cdfClass == NULL) MYDEBUG("cdfNativeLib", "cdfClass is null"); + if (objClass == NULL) MYDEBUG("cdfNativeLib", "objClass is null"); + if (cmdClass == NULL) MYDEBUG("cdfNativeLib", "cmdClass is null"); + if (vecClass == NULL) MYDEBUG("cdfNativeLib", "vecClass is null???"); + + cdfidID = (*env)->GetFieldID(env, cdfClass, "id", "J"); + MYDEBUG("cdfNativeLib","got cdfidID"); + + idID = (*env)->GetFieldID(env, myobjClass, "id", "J"); + MYDEBUG("cdfNativeLib","got idID"); + + vElemID=(*env)->GetMethodID(env, cmdClass, "elementAt", + "(I)Ljava/lang/Object;"); + MYDEBUG("cdfNativeLib","got jmethodIDs"); + /******************************************************/ + /* Get the real CDF id assigned by the CDFlib routine */ + /******************************************************/ + cdfid = (long)(*env)->GetLongField(env, theCDF, cdfidID); + MYDEBUG("cdfNativeLib","got fields"); + MYDEBUG("cdfNativeLib","getting first command"); + + /***************************************************/ + /* Get the first command and make sure that is one */ + /***************************************************/ + firstCmd = (*env)->CallObjectMethod(env, cmdVector, vElemID, 0); + status = getFuncOrItem(env, firstCmd, &func); + if (!CheckStatus("Java getFuncOrItem", 0)) return; + sprintf(msg,"1st function = %ld", func); + MYDEBUG("cdfNativeLib", msg); + if (func < NULL_) { + (*env)->ThrowNew(env, excClass, "Illegal function detected."); + return; + } + /*****************************************************/ + /* ok to continue. Determine what type of CDFObject */ + /*****************************************************/ + + objType = cdfObjectType(env, obj); + switch (objType) { + + case CDF_CLASS: + if (func == SAVE_) { /* Should SAVE_ be added to the main CDFlib?? */ + id0 = getCDFid(cdfid); + cdfstruct = (struct CDFstruct *)id0; + if (cdfstruct->largeFile) { + /* UpdateDotCDF returns 0 for success nonzero indicates failure */ + if (UpdateDotCDF64(cdfstruct) != 0) + (*env)->ThrowNew(env, excClass, "Save Failed 1."); + /* V_flush returns 0 for success nonzero indicates failure */ + if (V_flush64(cdfstruct->fp) != 0) + (*env)->ThrowNew(env, excClass, "Save Failed 2."); + } else { + /* UpdateDotCDF returns 0 for success nonzero indicates failure */ + if (UpdateDotCDF(cdfstruct) != 0) + (*env)->ThrowNew(env, excClass, "Save Failed 1."); + if (V_flush(cdfstruct->fp) != 0) + (*env)->ThrowNew(env, excClass, "Save Failed 2."); + } + } else if (func == BACKWARD_) { +/* if (func == BACKWARD_) { */ + firstArg = (*env)->CallObjectMethod(env, cmdVector, vElemID, 1); + status = getFuncOrItem(env, firstArg, &newArg); + if (!CheckStatus("Java getFuncOrItem", 0)) return; + CDFsetFileBackward((int)newArg); + } else if (func == CHECKSUM_) { + firstArg = (*env)->CallObjectMethod(env, cmdVector, vElemID, 1); + status = getFuncOrItem(env, firstArg, &newArg); + if (!CheckStatus("Java getFuncOrItem", 0)) return; + CDFsetChecksumMode(newArg); + } else if (func == VALIDATE_) { + firstArg = (*env)->CallObjectMethod(env, cmdVector, vElemID, 1); + status = getFuncOrItem(env, firstArg, &newArg); + if (!CheckStatus("Java getFuncOrItem", 0)) return; + CDFsetValidate(newArg); + } else if (func == GETCDFFILEBACKWARD_ || func == GETCDFCHECKSUM_ || + func == GETCDFVALIDATE_) { + argument arg; + arg.length = -1; + if (func == GETCDFFILEBACKWARD_) + envVar = (long) CDFgetFileBackwardEnvVar(); + else if (func == GETCDFCHECKSUM_) + envVar = (long) CDFgetChecksumEnvVar(); + else + envVar = (long) CDFgetValidate(); + firstArg = (*env)->CallObjectMethod(env, cmdVector, vElemID, 1); + status = getItem(env, theCDF, firstArg, obj, &arg); + *(long *)arg.ptr = envVar; + setJavaField(env, arg); + cleanArgument(env, &arg); + } else if (func == GETLEAPSECONDSENVVAR_) { + argument arg; + char *envvar; + arg.length = CDF_PATHNAME_LEN + 1; + firstArg = (*env)->CallObjectMethod(env, cmdVector, vElemID, 1); + status = getItem(env, theCDF, firstArg, obj, &arg); + envvar = (char *) CDFgetLeapSecondsTableEnvVar(); + if (envvar != NULL) + strncpy (arg.ptr, envvar, CDF_PATHNAME_LEN); + else + arg.ptr = NULL; + setJavaField(env, arg); + cleanArgument(env, &arg); + } else if (func == NULL_) { /* just to select this CDF */ + id0 = getCDFid(cdfid); + status = CDFlib(SELECT_, CDF_, id0, + NULL_); + if (!CheckStatus("cdflib (CDF)", 1)) return; + if (func == NULL_) return; /* If func == SELECT, return */ + } else { + status = JAVAcdflib (env, theCDF, obj, cmdVector, cdfid, func); + if (status != CDF_OK) return; + } + if (func == CLOSE_ || func == DELETE_) cleanGlobalRefs(env); + break; + + case VAR_CLASS: +/* id0 = getCDFid(cdfid); */ +/* if (func == CREATE_) { */ +/* status = CDFlib(SELECT_, CDF_, id0, */ +/* NULL_); */ +/* } else { */ + /* Get the id of the calling var */ +/* id = (long) (*env)->GetLongField(env, obj, idID); */ +/* */ +/* sprintf(msg,"Selecting variable #%ld",id); */ +/* MYDEBUG("cdflib (variable)",msg); */ +/* */ +/* status = CDFlib(SELECT_, CDF_, id0, */ +/* zVAR_, id, */ +/* NULL_); */ +/* } */ +/* if (!CheckStatus("cdflib (Variable)")) return; */ +/* if (func == NULL_) return; */ /* If func = SELECT, return */ + + status = JAVAcdflib(env, theCDF, obj, cmdVector, cdfid, func); + if (status != CDF_OK) return; + break; + + case ENTRY_CLASS: +/* if (func == NULL_) return; */ + /* Get the id of the calling entry */ +/* id = (long) (*env)->GetLongField(env, obj, idID); */ +/* id0 = getCDFid(cdfid); */ +/* entryScopeID = (*env)->GetFieldID(env, entryClass, "scope", "J"); */ +/* scope = (long)(*env)->GetLongField(env, obj, entryScopeID); */ +/* if (scope == GLOBAL_SCOPE) */ +/* status = CDFlib(SELECT_, CDF_, id0, gENTRY_, id, */ +/* NULL_); */ +/* else */ +/* status = CDFlib(SELECT_, CDF_, id0, */ +/* zENTRY_, id, */ +/* NULL_); */ +/* */ +/* if (!CheckStatus("cdflib (Entry)")) return; */ +/* if (func == NULL_) return; */ /* If func = SELECT, return */ + + status = JAVAcdflib(env, theCDF, obj, cmdVector, cdfid, func); + if (status != CDF_OK) return; + break; + + case DATA_CLASS: +/* id0 = getCDFid(cdfid); */ +/* status = CDFlib(SELECT_, CDF_, id0, */ +/* NULL_); */ +/* if (!CheckStatus("cdflib (DATA_CLASS)")) return; */ + status = JAVAcdflib(env, theCDF, obj, cmdVector, cdfid, func); + if (status != CDF_OK) return; + break; + + case ATTR_CLASS: +/* id0 = getCDFid(cdfid); */ +/* if (func == CREATE_) { */ +/* MYDEBUG("_Attribute_ 2", "CREATE_, ATTR_"); */ +/* status = CDFlib(SELECT_, CDF_, id0, */ +/* NULL_); */ +/* } else { */ + /* Get the id of the calling attr */ +/* id = (long) (*env)->GetLongField(env, obj, idID); */ +/* sprintf(msg,"Selecting attr #%ld",id); */ +/* MYDEBUG("_Attribute_ 2",msg); */ +/* status = CDFlib(SELECT_, CDF_, id0, */ +/* ATTR_, id, */ +/* NULL_); */ +/* } */ +/* if (!CheckStatus("cdflib (Attribute)")) return; */ +/* if (func == NULL_) return; */ /* If func = SELECT, return */ + + status = JAVAcdflib(env, theCDF, obj, cmdVector, cdfid, func); + if (status != CDF_OK) return; + break; + + default: /* bad class. Throw an error */ + (*env)->ThrowNew(env, excClass, "Bad CDFObject passed to cdflib\n"); + break; + } /* switch(objtype) */ +/* cleanGlobalRefs(env); */ + + +} /* Java_gsfc_nssdc_cdf_CDFNativeLibrary_cdfNativeLib */ + + +/********************************************* + ** ** + ** Epoch Utility Wrappers ** + ** ** + ** Note: These wrappers are now ** + ** obsolete and are present for ** + ** testing and comparison ** + ** ** + *********************************************/ + +JNIEXPORT jdouble JNICALL +Java_gsfc_nssdc_cdf_util_EpochNative_compute(JNIEnv *env, + jobject obj, + jlong year, + jlong month, + jlong day, + jlong hour, + jlong minute, + jlong second, + jlong msec) { + + double epoch = computeEPOCH((long)year, (long)month, (long)day, (long)hour, + (long)minute, (long)second, (long)msec); + + return((jdouble)epoch); +} + +JNIEXPORT jlongArray JNICALL +Java_gsfc_nssdc_cdf_util_EpochNative_breakdown(JNIEnv *env, jobject obj, + jdouble epoch) { + + long year, month, day, hour, minute, second, msec; + jlongArray jarray; + jlong *jbody; + + jarray = (*env)->NewLongArray(env, 7); + EPOCHbreakdown(epoch, &year, &month, &day, &hour, &minute, &second, &msec); + jbody = (*env)->GetLongArrayElements(env, jarray, 0); + jbody[0] = (jlong)year; + jbody[1] = (jlong)month; + jbody[2] = (jlong)day; + jbody[3] = (jlong)hour; + jbody[4] = (jlong)minute; + jbody[5] = (jlong)second; + jbody[6] = (jlong)msec; + + (*env)->ReleaseLongArrayElements(env, jarray, jbody, 0); + + return (jarray); +} + +JNIEXPORT jstring JNICALL +Java_gsfc_nssdc_cdf_util_EpochNative_encode(JNIEnv *env, + jobject obj, + jdouble epoch) { + + char epString[EPOCH_STRING_LEN+1]; + + encodeEPOCH(epoch, epString); + return (*env)->NewStringUTF(env, epString); +} + +JNIEXPORT jstring JNICALL +Java_gsfc_nssdc_cdf_util_EpochNative_encode1(JNIEnv *env, + jobject obj, + jdouble epoch) { + + char epString[EPOCH1_STRING_LEN+1]; + + encodeEPOCH1(epoch, epString); + return (*env)->NewStringUTF(env, epString); +} + +JNIEXPORT jstring JNICALL +Java_gsfc_nssdc_cdf_util_EpochNative_encode2(JNIEnv *env, + jobject obj, + jdouble epoch) { + + char epString[EPOCH2_STRING_LEN+1]; + + encodeEPOCH2(epoch, epString); + return (*env)->NewStringUTF(env, epString); +} + +JNIEXPORT jstring JNICALL +Java_gsfc_nssdc_cdf_util_EpochNative_encode3(JNIEnv *env, + jobject obj, + jdouble epoch) { + + char epString[EPOCH3_STRING_LEN+1]; + + encodeEPOCH3(epoch, epString); + return (*env)->NewStringUTF(env, epString); +} + +JNIEXPORT jstring JNICALL +Java_gsfc_nssdc_cdf_util_EpochNative_encode4(JNIEnv *env, + jobject obj, + jdouble epoch) { + + char epString[EPOCH4_STRING_LEN+1]; + + encodeEPOCH4(epoch, epString); + return (*env)->NewStringUTF(env, epString); +} + +JNIEXPORT jstring JNICALL +Java_gsfc_nssdc_cdf_util_EpochNative_encodex(JNIEnv *env, + jobject obj, + jdouble epoch, + jstring format) { + + char epString[EPOCH3_STRING_LEN+1]; + const char *formatString = (*env)->GetStringUTFChars(env, format, 0); + + encodeEPOCHx (epoch, (char *)formatString, epString); + (*env)->ReleaseStringUTFChars(env, format, formatString); + return (*env)->NewStringUTF(env, epString); +} + +JNIEXPORT jdouble JNICALL +Java_gsfc_nssdc_cdf_util_EpochNative_parse(JNIEnv *env, + jclass obj, + jstring sEpoch) { + + jdouble millis; + const char *epochString = (*env)->GetStringUTFChars(env, sEpoch, 0); + millis = parseEPOCH((char *)epochString); + (*env)->ReleaseStringUTFChars(env, sEpoch, epochString); + + return millis; +} + +JNIEXPORT jdouble JNICALL +Java_gsfc_nssdc_cdf_util_EpochNative_parse1(JNIEnv *env, + jclass obj, + jstring sEpoch) { + + jdouble millis; + const char *epochString = (*env)->GetStringUTFChars(env, sEpoch, 0); + millis = parseEPOCH1((char *)epochString); + (*env)->ReleaseStringUTFChars(env, sEpoch, epochString); + + return millis; +} + +JNIEXPORT jdouble JNICALL +Java_gsfc_nssdc_cdf_util_EpochNative_parse2(JNIEnv *env, + jclass obj, + jstring sEpoch) { + + jdouble millis; + const char *epochString = (*env)->GetStringUTFChars(env, sEpoch, 0); + millis = parseEPOCH2((char *)epochString); + (*env)->ReleaseStringUTFChars(env, sEpoch, epochString); + + return millis; +} + +JNIEXPORT jdouble JNICALL +Java_gsfc_nssdc_cdf_util_EpochNative_parse3(JNIEnv *env, + jclass obj, + jstring sEpoch) { + + jdouble millis; + const char *epochString = (*env)->GetStringUTFChars(env, sEpoch, 0); + millis = parseEPOCH3((char *)epochString); + (*env)->ReleaseStringUTFChars(env, sEpoch, epochString); + + return millis; +} diff --git a/cdf38_1-dist/cdfjava/jni/cdfNativeLibrary.h b/cdf38_1-dist/cdfjava/jni/cdfNativeLibrary.h new file mode 100644 index 0000000..835def3 --- /dev/null +++ b/cdf38_1-dist/cdfjava/jni/cdfNativeLibrary.h @@ -0,0 +1,134 @@ +/****************************************************************************** +* Copyright 1996-2014 United States Government as represented by the +* Administrator of the National Aeronautics and Space Administration. +* All Rights Reserved. +******************************************************************************/ +/* DO NOT EDIT THIS FILE - it is machine generated */ +/* --- Epoch routine names need to be consistent with the C and Fortran APIs */ +#include +/* Header for class gsfc_nssdc_cdf_CDFNativeLibrary */ + +#ifndef _Included_gsfc_nssdc_cdf_CDFNativeLibrary +#define _Included_gsfc_nssdc_cdf_CDFNativeLibrary +#ifdef __cplusplus +extern "C" { +#endif +/* + * Class: gsfc_nssdc_cdf_CDFNativeLibrary + * Method: cdfNativeLib + * Signature: (Lgsfc/nssdc/cdf/CDF;Lgsfc/nssdc/cdf/CDFObject;Ljava/util/Vector;)V + */ +JNIEXPORT void JNICALL Java_gsfc_nssdc_cdf_CDFNativeLibrary_cdfNativeLib + (JNIEnv *, jobject, jobject, jobject, jobject); + +#ifdef __cplusplus +} +#endif +#endif +/* Header for class gsfc_nssdc_cdf_util_EpochNative */ + +#ifndef _Included_gsfc_nssdc_cdf_util_EpochNative +#define _Included_gsfc_nssdc_cdf_util_EpochNative +#ifdef __cplusplus +extern "C" { +#endif +/* + * Class: gsfc_nssdc_cdf_util_EpochNative + * Method: compute + * Signature: (JJJJJJJ)D + */ +JNIEXPORT jdouble JNICALL Java_gsfc_nssdc_cdf_util_EpochNative_compute + (JNIEnv *, jclass, jlong, jlong, jlong, jlong, jlong, jlong, jlong); + +/* + * Class: gsfc_nssdc_cdf_util_EpochNative + * Method: breakdown + * Signature: (D)[J + */ +JNIEXPORT jlongArray JNICALL Java_gsfc_nssdc_cdf_util_EpochNative_breakdown + (JNIEnv *, jclass, jdouble); + +/* + * Class: gsfc_nssdc_cdf_util_EpochNative + * Method: encode + * Signature: (D)Ljava/lang/String; + */ +JNIEXPORT jstring JNICALL Java_gsfc_nssdc_cdf_util_EpochNative_encode + (JNIEnv *, jclass, jdouble); + +/* + * Class: gsfc_nssdc_cdf_util_EpochNative + * Method: encode1 + * Signature: (D)Ljava/lang/String; + */ +JNIEXPORT jstring JNICALL Java_gsfc_nssdc_cdf_util_EpochNative_encode1 + (JNIEnv *, jclass, jdouble); + +/* + * Class: gsfc_nssdc_cdf_util_EpochNative + * Method: encode2 + * Signature: (D)Ljava/lang/String; + */ +JNIEXPORT jstring JNICALL Java_gsfc_nssdc_cdf_util_EpochNative_encode2 + (JNIEnv *, jclass, jdouble); + +/* + * Class: gsfc_nssdc_cdf_util_EpochNative + * Method: encode3 + * Signature: (D)Ljava/lang/String; + */ +JNIEXPORT jstring JNICALL Java_gsfc_nssdc_cdf_util_EpochNative_encode3 + (JNIEnv *, jclass, jdouble); + +/* + * Class: gsfc_nssdc_cdf_util_EpochNative + * Method: encode4 + * Signature: (D)Ljava/lang/String; + */ +JNIEXPORT jstring JNICALL Java_gsfc_nssdc_cdf_util_EpochNative_encode4 + (JNIEnv *, jclass, jdouble); + +/* + * Class: gsfc_nssdc_cdf_util_EpochNative + * Method: encodex + * Signature: (DLjava/lang/String;)Ljava/lang/String; + */ +JNIEXPORT jstring JNICALL Java_gsfc_nssdc_cdf_util_EpochNative_encodex + (JNIEnv *, jclass, jdouble, jstring); + +/* + * Class: gsfc_nssdc_cdf_util_EpochNative + * Method: parse + * Signature: (Ljava/lang/String;)D + */ +JNIEXPORT jdouble JNICALL Java_gsfc_nssdc_cdf_util_EpochNative_parse + (JNIEnv *, jclass, jstring); + +/* + * Class: gsfc_nssdc_cdf_util_EpochNative + * Method: parse1 + * Signature: (Ljava/lang/String;)D + */ +JNIEXPORT jdouble JNICALL Java_gsfc_nssdc_cdf_util_EpochNative_parse1 + (JNIEnv *, jclass, jstring); + +/* + * Class: gsfc_nssdc_cdf_util_EpochNative + * Method: parse2 + * Signature: (Ljava/lang/String;)D + */ +JNIEXPORT jdouble JNICALL Java_gsfc_nssdc_cdf_util_EpochNative_parse2 + (JNIEnv *, jclass, jstring); + +/* + * Class: gsfc_nssdc_cdf_util_EpochNative + * Method: parse3 + * Signature: (Ljava/lang/String;)D + */ +JNIEXPORT jdouble JNICALL Java_gsfc_nssdc_cdf_util_EpochNative_parse3 + (JNIEnv *, jclass, jstring); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/cdf38_1-dist/cdfjava/jni/cdfjava.h b/cdf38_1-dist/cdfjava/jni/cdfjava.h new file mode 100644 index 0000000..5ee59c6 --- /dev/null +++ b/cdf38_1-dist/cdfjava/jni/cdfjava.h @@ -0,0 +1,112 @@ +/* $Id: cdfjava.h,v 1.1.1.1 2020/05/08 13:29:57 mhliu Exp $ + * + */ +/****************************************************************************** +* Copyright 1996-2014 United States Government as represented by the +* Administrator of the National Aeronautics and Space Administration. +* All Rights Reserved. +******************************************************************************/ + +#include +#include +#include "cdfNativeLibrary.h" + +/****************************************/ +/* Max # of elements CmdVector can hold */ +/****************************************/ +#define MAX_VECTOR_SIZE 100 + +/****************************************** + * CDFObject Types + ******************************************/ +#define CDFOBJECT_CLASS 0L +#define CDF_CLASS 1L +#define FILE_CLASS 2L +#define VAR_CLASS 3L +#define ENTRY_CLASS 4L +#define DATA_CLASS 5L +#define ATTR_CLASS 6L + +/****************************************** + * Should this be added to cdf.h? + ******************************************/ +/* #define SAVE_ 1009 */ +/* #define BACKWARD_ 1010 */ +/* #define GETCDFFILEBACKWARD_ 1011 */ + +/*********************************************** + * Offset for big/little-endian. + * If NETWORKbyteORDERcpu is defined in + * cdflib.h, then it is a big-endian machine. + ***********************************************/ + +#if defined(NETWORKbyteORDERcpu) +#define LONGOFFSET 4 +#define INTOFFSET 2 +#define SHORTOFFSET 1 +#else +#define LONGOFFSET 0 +#define INTOFFSET 0 +#define SHORTOFFSET 0 +#endif + + +/* + * Macro definitions: + */ +#define CheckStatus(msg,flag) ErrorHandler(msg, status, env, theCDF, flag) + +#define isItem(obj) ((*env)->IsInstanceOf(env, obj, \ + (*env)->FindClass(env, "java/util/Vector"))) == JNI_FALSE + +#define CHECKNULL(a,v) \ + if ( v == NULL ) { \ + char message[1024]; \ + sprintf( message, "%s is NULL!", a ); \ + (*env)->ThrowNew( env, (*env)->FindClass( env, "java/lang/NullPointerException" ), \ + message );\ + return (BAD_FNC_OR_ITEM); \ + } + +#define MYDEBUG(f,m) \ + if (mydebug) { printf("%-15s: %s\n", f, m); } + +/******************************************************************* + * Structure that is used to hold information about argument + * (e.g. id, name, etc.) + ******************************************************************/ +typedef struct argStruct { + jobject myObject; /* The object that the instance var is a member of */ + jfieldID id; /* The field ID of the instance var */ + jobject nameObject; /* The name string object. Needed for memory management */ + const char *name; /* The name of the argument as a C string */ + jobject sigObject; /* The sig string object. Needed for memory management */ + const char *sig; /* The signature of the arg as a C string */ + void *ptr; /* A pointer to the arg in C */ + jstring tempString; /* Temp string object needed to handle memory for instance + vars that are Strings */ + jboolean isArray; /* JNI_FALSE = not an array, JNI_TRUE = is an array */ + jboolean isEntryorVariableData; /* Is arg an Entry/Variable data */ + jobject dsObject; /* If entryData then this is the actual data signature + Since in the "data" instance var is a generic + java/lang/Object we need 2 signatures. The actual signature + "Ljava/lang/Object;" to get the data and this one to build + and get the data out. */ + const char *datasig; /* The signature of the entry "data" as a C string */ + jsize length; /* = numElements */ + jsize numDims; + long dimSizes[CDF_MAX_DIMS]; + char Csig[25]; +} argument; + +/************************************************************************ + * Structure that is used to hold information about the CDF file. + * (e.g. id, name, etc.) + ************************************************************************/ +typedef struct cdfIDStruct { + CDFid id; /* The CDFid from open or create function */ + jlong jid; /* Where it is in the link list structure */ + int nCDFs; /* Reseved for future use */ + jboolean open; /* flag indicating whether CDF is still open */ + struct cdfIDStruct *next; /* A pointer to the next item in the list */ +} cdfIDList; diff --git a/cdf38_1-dist/checkleapseconds.sh b/cdf38_1-dist/checkleapseconds.sh new file mode 100755 index 0000000..f26dab3 --- /dev/null +++ b/cdf38_1-dist/checkleapseconds.sh @@ -0,0 +1,72 @@ +#! /bin/sh +echo +echo Checking for the leap second table... +local_url=`printenv CDF_LEAPSECONDSTABLE` +if [ -z "$local_url" ]; then + echo CDF_LEAPSECONDSTABLE environment variable is not defined... + echo Internal hard-coded leap second table may be used... + if [ -n "$CDF_BASE" ]; then + result=`$CDF_BASE/bin/cdfleapsecondsinfo -nodump` + local_leap=`echo $result | cut -d " " -f31` + ls_folder= + else + echo "Enter the latest, installed CDF directory: "; + read ls_folder + if [ -f "$ls_folder/CDFLeapSeconds.txt" ]; then + local_leap=`tail -1 $ls_folder/CDFLeapSeconds.txt | awk '{ print $1"-"$2"-"$3 }'` + else + echo "Error... CDF installation not found in $ls_folder." + exit 0; + fi + fi +else + local_leap=`tail -1 ${local_url}| awk '{ print $1"-"$2"-"$3 }'`; + ls_folder=`dirname $local_url` +fi +remote_url="https://cdf.gsfc.nasa.gov/html/CDFLeapSeconds.txt" +isCurlAvail=`which curl` +if [ `echo "$isCurlAvail" | grep -c "no "` -eq 1 ]; then + `wget -q -O /tmp/CDFLeapSeconds.txt ${remote_url}` + if [ $? -ne 0 ]; then + echo "Error... ${remote_url} not found."; + exit 0; + fi +else + `curl -s -o /tmp/CDFLeapSeconds.txt ${remote_url}` + if [ $? -ne 0 ]; then + echo "Error... ${remote_url} not found."; + exit 0; + fi +fi +remote_leap=`tail -1 /tmp/CDFLeapSeconds.txt | awk '{ print $1"-"$2"-"$3 }'` +lyear=`echo $local_leap | cut -d- -f1` +lmonth=`echo $local_leap | cut -d- -f2` +lday=`echo $local_leap | cut -d- -f3` +ryear=`echo $remote_leap | cut -d- -f1` +rmonth=`echo $remote_leap | cut -d- -f2` +rday=`echo $remote_leap | cut -d- -f3` +localdate=`expr $lyear*10000+$lmonth*100+$lday | bc` +remotedate=`expr $ryear*10000+$rmonth*100+$rday | bc` +if [ $localdate -lt $remotedate ]; then + echo "" + echo "You are using the leap second table at $local_url" + echo "But, newer leap second(s) had been added to CDFLeapSeconds.txt at the CDF" + echo "home page. Please update your CDF installation that includes the" + echo "latest CDFLeapSeconds.txt from https://cdf.gsfc.nasa.gov." + echo "" +else + if [ $localdate -eq $remotedate ]; then + echo "" + if [ -z "$ls_folder" ]; then + echo "Hard-coded CDFLeapSeconds.txt is up-to-date." + else + echo "Local CDFLeapSeconds.txt in $ls_folder is up-to-date." + fi + echo "" + else + echo "" + echo "Local CDFLeapSeconds.txt in $ls_folder has a newer leap second(s)" + echo "than the one at the CDF home page." + echo "" + fi +fi diff --git a/cdf38_1-dist/modify_definition_files.sh b/cdf38_1-dist/modify_definition_files.sh new file mode 100755 index 0000000..f017216 --- /dev/null +++ b/cdf38_1-dist/modify_definition_files.sh @@ -0,0 +1,80 @@ +#! /bin/bash +search="" +replace=$1 # Current working directory +whichos=`uname` +case "$whichos" in + CYGWIN*) topath=1;; + MINGW*) topath=1;; + Darwin*) topath=2;; + * ) topath=0;; +esac + +for file in `ls $replace/bin/definitions.*` +do + extension="${file:${#file}-1}" + if [ $topath -eq 1 ]; then + if [ $extension == "B" ] || [ $extension == "K" ]; then + echo "export PATH=\"$CDF_BASE/lib:\$PATH\"" >> $file + else + echo "setenv PATH \"$CDF_BASE/lib:\$PATH\"" >> $file + fi + elif [ $topath -eq 2 ]; then + if [ $extension == "B" ] || [ $extension == "K" ]; then + echo "if [ -z \$DYLD_LIBRARY_PATH ]; then" >> $file + echo " export DYLD_LIBRARY_PATH=\$CDF_BASE/lib" >> $file + echo "else" >> $file + echo " LDY=\`printenv DYLD_LIBRARY_PATH\`" >> $file + echo " if ! [[ \$LDY =~ \"\$CDF_BASE/lib\" ]]; then" >> $file + echo " export DYLD_LIBRARY_PATH=\$CDF_BASE/lib:\$DYLD_LIBRARY_PATH" >> $file + echo " fi" >> $file + echo "fi" >> $file + else + echo "if \$?DYLD_LIBRARY_PATH then" >> $file + echo " set LDY=\`printenv DYLD_LIBRARY_PATH\`" >> $file + echo " if ( \$LDY !~ \*\${CDF_BASE}/lib\* ) then" >> $file + echo " setenv DYLD_LIBRARY_PATH \$CDF_BASE/lib:\$DYLD_LIBRARY_PATH" >> $file + echo " endif" >> $file + echo "else" >> $file + echo " setenv DYLD_LIBRARY_PATH \$CDF_BASE/lib" >> $file + echo "endif" >> $file + fi + else + if [ $extension == "B" ] || [ $extension == "K" ]; then + echo "if [ -z \$LD_LIBRARY_PATH ]; then" >> $file + echo " export LD_LIBRARY_PATH=\$CDF_BASE/lib" >> $file + echo "else" >> $file + echo " LDY=\`printenv LD_LIBRARY_PATH\`" >> $file + echo " if ! [[ \$LDY =~ \"\$CDF_BASE/lib\" ]]; then" >> $file + echo " export LD_LIBRARY_PATH=\$CDF_BASE/lib:\$LD_LIBRARY_PATH" >> $file + echo " fi" >> $file + echo "fi" >> $file + else + echo "if \$?LD_LIBRARY_PATH then" >> $file + echo " set LDY=\`printenv LD_LIBRARY_PATH\`" >> $file + echo " if ( \$LDY !~ \*\$CDF_BASE/lib\* ) then" >> $file + echo " setenv LD_LIBRARY_PATH \$CDF_BASE/lib:\$LD_LIBRARY_PATH" >> $file + echo " endif" >> $file + echo "else" >> $file + echo " setenv LD_LIBRARY_PATH \$CDF_BASE/lib" >> $file + echo "endif" >> $file + fi + fi + + echo "Modifying the definition file $file .." + if `type ed > /dev/null 2>&1` + then + ed - $file << editend + 1,\$s:$search:$replace:g + w + q +editend + elif `type sed > /dev/null 2>&1` + then + sed -e "s,$search,$replace,g" < $file > $file.new + mv $file.new $file + else + echo Not modified... as both "ed" and "sed" line editor not installed. + echo Use any available text editor to manually modify "$search" to "$replace". + fi +done + diff --git a/cdf38_1-dist/samples/OperateAttributes.c b/cdf38_1-dist/samples/OperateAttributes.c new file mode 100644 index 0000000..eb2ca38 --- /dev/null +++ b/cdf38_1-dist/samples/OperateAttributes.c @@ -0,0 +1,375 @@ +/****************************************************************************** +* +* SPDF/CDF Sample program for operating attributes/entries in a CDF. +* +* Version 1.0, 09-Dec-05 +* +* Modification history: +* +* V1.0 09-Dec-05, M Liu Original version (for CDF V3.1). +* A simple program to add and delete +* attributes/entries to and from a CDF. +* The global attributes apply to the CDF as a +* whole, variable attributes +* apply to variables, zVariables in this sample +* program. It also shows how to respecify and +* verify the specifications of the entries. +******************************************************************************/ + +#include +#include +#include + +#include "cdf.h" + +#define EXIT_SUCCESS_ 0 +#define EXIT_FAILURE_ 1 + +/****************************************************************************** +* Macros/prototypes. +******************************************************************************/ + +void QuitCDF PROTOARGs((char *where, CDFstatus status)); + +/****************************************************************************** +* Main. +******************************************************************************/ + +int main () { +CDFid id; +CDFstatus status; +static long dimSizes[1] = { 2 }; +static long dimSizes1[2] = { 2, 3 }; +static long dimSizes2[1] = { 5 }; +static long var1DataType = { CDF_INT2 }; +static long var2DataType = { CDF_CHAR }; +static long var1NumElements = { 1 }; +static long var2NumElements = { 8 }; +long var1Num_out, var2Num_out; +static long var1RecVariance = { VARY }; +static long var2RecVariance = { VARY }; +static long var1DimVariances[2] = { VARY, VARY }; +static long var2DimVariances[1] = { VARY }; +static char var1Name[] = "VAR1a"; +static char var2Name[] = "zVARa1"; +long attrNum_out; +static long entryNum = { 2 }; +long maxEntry_out; +static long attrScope = { GLOBAL_SCOPE }; +static long attrScope2 = { VARIABLE_SCOPE }; +static long attrScope3 = { VARIABLE_SCOPE }; +long attrScope_out; +static long entryDataType = { CDF_INT2 }; +static long entryDataTypeNew = { CDF_UINT2 }; +long entryDataType_out; +static long entryNumElems = { 1 }; +long entryNumElems_out; +static short entryValue = { 1 }; +short entryValue_out; +long numAttrs_out; +int i; +static char attrName[] = "ATTR1"; +static char attrName2[] = "ATTR2"; +static char attrName3[] = "ATTR3"; +static char new_attrName[] = "ATTR1a"; +char attrName_out[CDF_ATTR_NAME_LEN256]; +static char zEntryValue1 = { 4 }; +char zEntryValueOut1; +static double zEntryValue2 = { 4.0 }; +double zEntryValueOut2; +long maxGentry, numGentries, + maxZentry, numZentries, numGattrs, numVattrs; +long entryNumOut1, entryNumOut2, entryNumOut3; + +/****************************************************************************** +* Create CDF. +******************************************************************************/ +/* CDFsetFileBackwardFlag(BACKWARDFILEon); */ +status = CDFlib (CREATE_, CDF_, "TEST", 0L, dimSizes, &id, + NULL_); + +if (status < CDF_OK) { + if (status == CDF_EXISTS) { + status = CDFlib (OPEN_, CDF_, "TEST", &id, + NULL_); + if (status < CDF_OK) QuitCDF ("1.0", status); + + status = CDFlib (DELETE_, CDF_, + NULL_); + if (status < CDF_OK) QuitCDF ("1.1", status); + + status = CDFlib (CREATE_, CDF_, "TEST", 0L, dimSizes, &id, + NULL_); + if (status < CDF_OK) QuitCDF ("1.2", status); + } + else + QuitCDF ("1.3", status); +} + +/****************************************************************************** +* Create variables. +******************************************************************************/ + +status = CDFlib (CREATE_, zVAR_, var1Name, var1DataType, var1NumElements, + 2L, dimSizes1, + var1RecVariance, var1DimVariances, + &var1Num_out, + NULL_); +if (status < CDF_OK) QuitCDF ("2.0", status); + +status = CDFlib (CREATE_, zVAR_, var2Name, var2DataType, var2NumElements, + 1L, dimSizes2, + var2RecVariance, var2DimVariances, + &var2Num_out, + NULL_); +if (status < CDF_OK) QuitCDF ("2.1", status); + +/****************************************************************************** +* Create attributes. +******************************************************************************/ + +status = CDFlib (CREATE_, ATTR_, attrName, attrScope, &attrNum_out, + ATTR_, attrName2, attrScope2, &attrNum_out, + ATTR_, attrName3, attrScope3, &attrNum_out, + NULL_); +if (status < CDF_OK) QuitCDF ("3.0", status); + +/****************************************************************************** +* Write to attributes. +******************************************************************************/ + +status = CDFlib (SELECT_, ATTR_, 0L, + gENTRY_, entryNum, + PUT_, gENTRY_DATA_, entryDataType, entryNumElems, + &entryValue, + SELECT_, ATTR_, 1L, + zENTRY_NAME_, var1Name, + PUT_, zENTRY_DATA_, CDF_BYTE, 1L, &zEntryValue1, + SELECT_, ATTR_, 2L, + zENTRY_NAME_, var2Name, + PUT_, zENTRY_DATA_, CDF_REAL8, 1L, &zEntryValue2, + NULL_); +if (status < CDF_OK) QuitCDF ("4.0", status); + +/****************************************************************************** +* Confirm entry numbers. +******************************************************************************/ + +status = CDFlib (SELECT_, ATTR_, 0L, + CONFIRM_, gENTRY_, &entryNumOut1, + SELECT_, ATTR_, 1L, + CONFIRM_, zENTRY_, &entryNumOut2, + SELECT_, ATTR_, 2L, + CONFIRM_, zENTRY_, &entryNumOut3, + NULL_); +if (status < CDF_OK) QuitCDF ("5.0", status); + +if (entryNumOut1 != 2) QuitCDF ("5.1", status); +if (entryNumOut2 != 1) QuitCDF ("5.2", status); +if (entryNumOut3 != 1) QuitCDF ("5.3", status); + +/****************************************************************************** +* Read from attributes. +******************************************************************************/ + +status = CDFlib (SELECT_, ATTR_, 0L, + gENTRY_, entryNum, + CONFIRM_, CURgENTRY_EXISTENCE_, + GET_, gENTRY_DATA_, &entryValue_out, + SELECT_, ATTR_, 1L, + zENTRY_, 0L, + CONFIRM_, CURzENTRY_EXISTENCE_, + GET_, zENTRY_DATA_, &zEntryValueOut1, + SELECT_, ATTR_, 2L, + zENTRY_, 1L, + CONFIRM_, CURzENTRY_EXISTENCE_, + GET_, zENTRY_DATA_, &zEntryValueOut2, + NULL_); +if (status < CDF_OK) QuitCDF ("6.0", status); + +if (entryValue_out != entryValue) QuitCDF ("6.1", status); +if (zEntryValue1 != zEntryValueOut1) QuitCDF ("6.2", status); +if (zEntryValue2 != zEntryValueOut2) QuitCDF ("6.3", status); + +/****************************************************************************** +* Confirm existence of attributes/entries. +******************************************************************************/ + +status = CDFlib (CONFIRM_, ATTR_EXISTENCE_, attrName3, + NULL_); +if (status < CDF_OK) QuitCDF ("7.0", status); + +status = CDFlib (SELECT_, ATTR_, 0L, + CONFIRM_, gENTRY_EXISTENCE_, entryNum, + SELECT_, ATTR_, 1L, + CONFIRM_, zENTRY_EXISTENCE_, 0L, + SELECT_, ATTR_, 2L, + CONFIRM_, zENTRY_EXISTENCE_, 1L, + NULL_); +if (status < CDF_OK) QuitCDF ("7.1", status); + +/****************************************************************************** +* Inquire CDF. +******************************************************************************/ + +status = CDFlib (GET_, CDF_NUMATTRS_, &numAttrs_out, + NULL_); +if (status < CDF_OK) QuitCDF ("8.0", status); + +if (numAttrs_out != 3) QuitCDF ("8.1", status); + +/****************************************************************************** +* Rename attribute. +******************************************************************************/ + +status = CDFlib (SELECT_, ATTR_NAME_, attrName, + PUT_, ATTR_NAME_, new_attrName, + NULL_); +if (status < CDF_OK) QuitCDF ("9.0", status); + +/****************************************************************************** +* Inquire attribute. +******************************************************************************/ + +status = CDFlib (GET_, ATTR_NAME_, attrName_out, + ATTR_SCOPE_, &attrScope_out, + ATTR_MAXgENTRY_, &maxEntry_out, + CONFIRM_, ATTR_, &attrNum_out, + NULL_); +if (status < CDF_OK) QuitCDF ("10.0", status); + +if (strcmp(attrName_out,new_attrName) != 0) QuitCDF ("10.1", status); +if (attrScope_out != attrScope) QuitCDF ("10.2", status); +if (maxEntry_out != entryNum) QuitCDF ("10.3", status); +if (attrNum_out != 0L) QuitCDF ("10.4", status); + +/****************************************************************************** +* Inquire attribute entries. +******************************************************************************/ + +status = CDFlib (SELECT_, ATTR_, 0L, + gENTRY_, entryNum, + GET_, gENTRY_DATATYPE_, &entryDataType_out, + gENTRY_NUMELEMS_, &entryNumElems_out, + NULL_); +if (status < CDF_OK) QuitCDF ("11.0", status); + +if (entryDataType_out != entryDataType) QuitCDF ("11.1", status); +if (entryNumElems_out != entryNumElems) QuitCDF ("11.2", status); + +status = CDFlib (SELECT_, ATTR_, 1L, + zENTRY_, 0L, + GET_, zENTRY_DATATYPE_, &entryDataType_out, + zENTRY_NUMELEMS_, &entryNumElems_out, + NULL_); +if (status < CDF_OK) QuitCDF ("11.3", status); + +if (entryDataType_out != CDF_BYTE) QuitCDF ("11.4", status); +if (entryNumElems_out != 1L) QuitCDF ("11.5", status); + +status = CDFlib (SELECT_, ATTR_, 2L, + zENTRY_, 1L, + GET_, zENTRY_DATATYPE_, &entryDataType_out, + zENTRY_NUMELEMS_, &entryNumElems_out, + NULL_); +if (status < CDF_OK) QuitCDF ("11.6", status); + +if (entryDataType_out != CDF_REAL8) QuitCDF ("11.7", status); +if (entryNumElems_out != 1L) QuitCDF ("11.8", status); + +/****************************************************************************** +* Inquire CDF. +******************************************************************************/ + +status = CDFlib (SELECT_, ATTR_, 0L, + GET_, CDF_NUMgATTRS_, &numGattrs, + CDF_NUMvATTRS_, &numVattrs, + ATTR_MAXgENTRY_, &maxGentry, + ATTR_NUMgENTRIES_, &numGentries, + SELECT_, ATTR_, 1L, + GET_, ATTR_MAXzENTRY_, &maxZentry, + ATTR_NUMzENTRIES_, &numZentries, + NULL_); +if (status < CDF_OK) QuitCDF ("12.0", status); + +if (numGattrs != 1) QuitCDF ("12.1", status); +if (numVattrs != 2) QuitCDF ("12.2", status); +if (maxGentry != entryNum) QuitCDF ("12.3", status); +if (numGentries != 1) QuitCDF ("12.4", status); +if (maxZentry != 0) QuitCDF ("12.5", status); +if (numZentries != 1) QuitCDF ("12.6", status); + +/****************************************************************************** +* Modify entries/attribute. +******************************************************************************/ + +status = CDFlib (SELECT_, ATTR_, 0L, + gENTRY_, entryNum, + PUT_, gENTRY_DATASPEC_, entryDataTypeNew, entryNumElems, + SELECT_, ATTR_, 1L, + zENTRY_, 0L, + PUT_, zENTRY_DATASPEC_, CDF_UINT1, 1L, + SELECT_, ATTR_, 2L, + zENTRY_, 1L, + PUT_, zENTRY_DATASPEC_, CDF_EPOCH, 1L, + SELECT_, ATTR_, 0L, + PUT_, ATTR_SCOPE_, VARIABLE_SCOPE, + ATTR_SCOPE_, GLOBAL_SCOPE, + NULL_); +if (status < CDF_OK) QuitCDF ("13.0", status); + +/****************************************************************************** +* Delete entries/attribute/variables. +******************************************************************************/ + +status = CDFlib (SELECT_, ATTR_, 0L, + gENTRY_, entryNum, + DELETE_, gENTRY_, + SELECT_, ATTR_, 1L, + zENTRY_, 0L, + DELETE_, zENTRY_, + SELECT_, ATTR_, 2L, + zENTRY_, 1L, + DELETE_, zENTRY_, + SELECT_, ATTR_, 0L, + DELETE_, ATTR_, + NULL_); +if (status < CDF_OK) QuitCDF ("14.0", status); + +/****************************************************************************** +* Close CDF. +******************************************************************************/ + +status = CDFlib (CLOSE_, CDF_, + NULL_); +if (status < CDF_OK) QuitCDF ("15.0", status); + +/****************************************************************************** +* Successful completion. +******************************************************************************/ + +return EXIT_SUCCESS_; +} + + +/****************************************************************************** +* QuitCDF. +******************************************************************************/ + +void QuitCDF (where, status) +char *where; +CDFstatus status; +{ + char text[CDF_STATUSTEXT_LEN+1]; + printf ("Aborting at %s...\n", where); + if (status < CDF_OK) { + CDFlib (SELECT_, CDF_STATUS_, status, + GET_, STATUS_TEXT_, text, + NULL_); + printf ("%s\n", text); + } + CDFlib (CLOSE_, CDF_, + NULL_); + printf ("...test aborted.\n"); + exit (EXIT_FAILURE_); +} diff --git a/cdf38_1-dist/samples/OperateCDF.c b/cdf38_1-dist/samples/OperateCDF.c new file mode 100644 index 0000000..32d4285 --- /dev/null +++ b/cdf38_1-dist/samples/OperateCDF.c @@ -0,0 +1,163 @@ +/****************************************************************************** +* +* SPDF/CDF Sample program for operating a CDF. +* +* Version 1.0, 09-Dec-05 +* +* Modification history: +* +* V1.0 09-Dec-05, M Liu Original version (for CDF V3.1). +* A simple program to create/delete a CDF and +* modify the CDF specification from the +* defaults. The CDF is created expecting +* zVariable(s), the preferred variable, to be +* added. It also shows how to acquire the +* information from the library being operated +* upon. +* +******************************************************************************/ + +#include +#include +#include + +#include "cdf.h" + +#define EXIT_SUCCESS_ 0 +#define EXIT_FAILURE_ 1 + +/****************************************************************************** +* Macros/prototypes. +******************************************************************************/ + +void QuitCDF PROTOARGs((char *where, CDFstatus status)); + +/****************************************************************************** +* Main. +******************************************************************************/ + +int main () { +CDFid id; +CDFstatus status; +static long encoding = NETWORK_ENCODING; +static long majority = ROW_MAJOR; +static long dimSizes[1] = { 0 }; +static long cType = GZIP_COMPRESSION; +static long cParms[1] = { 5 }; +long version_out; +long release_out; +long increment_out; +char subincrement_out; +long formatOut; +long encoding_out; +long majority_out; +char CopyRightText[CDF_COPYRIGHT_LEN+1]; +static long actual_encoding = NETWORK_ENCODING; + +/****************************************************************************** + * Get library information. + ******************************************************************************/ + +status = CDFlib (GET_, LIB_VERSION_, &version_out, + LIB_RELEASE_, &release_out, + LIB_INCREMENT_, &increment_out, + LIB_subINCREMENT_, &subincrement_out, + LIB_COPYRIGHT_, CopyRightText, + NULL_); +if (status < CDF_OK) QuitCDF ("1.0", status); + +/****************************************************************************** +* Create CDF. +******************************************************************************/ +/* CDFsetFileBackwardFlag(BACKWARDFILEon); */ +status = CDFlib (CREATE_, CDF_, "TEST", 0L, dimSizes, &id, + NULL_); + +if (status < CDF_OK) { + if (status == CDF_EXISTS) { + status = CDFlib (OPEN_, CDF_, "TEST", &id, + NULL_); + if (status < CDF_OK) QuitCDF ("2.0", status); + + status = CDFlib (DELETE_, CDF_, + NULL_); + if (status < CDF_OK) QuitCDF ("2.1", status); + + status = CDFlib (CREATE_, CDF_, "TEST", 0L, dimSizes, &id, + NULL_); + if (status < CDF_OK) QuitCDF ("2.2", status); + } + else + QuitCDF ("1.3", status); +} + +/****************************************************************************** +* Respecify the encoding and majority for the CDF (from its default). +******************************************************************************/ + +status = CDFlib (PUT_, CDF_ENCODING_, encoding, + CDF_MAJORITY_, majority, + NULL_); + +if (status < CDF_OK) QuitCDF ("3.0", status); + +/****************************************************************************** +* Inquire CDF. +******************************************************************************/ + +status = CDFlib (GET_, CDF_FORMAT_, &formatOut, + CDF_ENCODING_, &encoding_out, + CDF_MAJORITY_, &majority_out, + NULL_); +if (status < CDF_OK) QuitCDF ("4.0", status); + +if (formatOut != SINGLE_FILE) QuitCDF ("4.1", status); +if (encoding_out != actual_encoding) QuitCDF ("4.2", status); +if (majority_out != majority) QuitCDF ("4.3", status); + +/****************************************************************************** +* Specify the compression for the CDF. +******************************************************************************/ + +status = CDFlib (PUT_, CDF_COMPRESSION_, cType, cParms, + NULL_); + +if (status < CDF_OK) QuitCDF ("5.0", status); + +/****************************************************************************** +* Close CDF. +******************************************************************************/ + +status = CDFlib (CLOSE_, CDF_, + NULL_); +if (status < CDF_OK) QuitCDF ("6.0", status); + +/****************************************************************************** +* Successful completion. +******************************************************************************/ + +return EXIT_SUCCESS_; +} + + +/****************************************************************************** +* QuitCDF. +******************************************************************************/ + +void QuitCDF (where, status) +char *where; +CDFstatus status; +{ + char text[CDF_STATUSTEXT_LEN+1]; + printf ("Aborting at %s...\n", where); + if (status < CDF_OK) { + CDFlib (SELECT_, CDF_STATUS_, status, + GET_, STATUS_TEXT_, text, + NULL_); + printf ("%s\n", text); + } + CDFlib (CLOSE_, CDF_, + NULL_); + printf ("...test aborted.\n"); + exit (EXIT_FAILURE_); +} diff --git a/cdf38_1-dist/samples/OperateVariables.c b/cdf38_1-dist/samples/OperateVariables.c new file mode 100644 index 0000000..24f6fb6 --- /dev/null +++ b/cdf38_1-dist/samples/OperateVariables.c @@ -0,0 +1,549 @@ +/****************************************************************************** +* +* SPDF/CDF Test program for operating variables in a CDF. +* +* Version 1.0, 09-Dec-05 +* +* Modification history: +* +* V1.0 09-Dec-05, M Liu Original version (for CDF V3.1). +* A simple program to create zVariables, the +* preferred variables, to a CDF. It also +* shows how to respecify and verify the +* variable's specification. Data values are +* written to and read from the variables in +* differenet ways. +******************************************************************************/ + +#include +#include +#include + +#include "cdf.h" + +#define EXIT_SUCCESS_ 0 +#define EXIT_FAILURE_ 1 + +/****************************************************************************** +* Macros/prototypes. +******************************************************************************/ + +#define N_DIMS1 2 +#define DIM_0_SIZE1 2 +#define DIM_1_SIZE1 3 + +#define N_DIMS2 1 +#define DIM_0_SIZE2 5 +#define NUM_ELEMS2 8 + +void QuitCDF PROTOARGs((char *where, CDFstatus status)); + +/****************************************************************************** +* Main. +******************************************************************************/ + +int main () { +CDFid id; +CDFstatus status; +int dim_n; +static long numDims1 = N_DIMS1; +static long numDims2 = N_DIMS2; +static long dimSizes[1] = { 0 }; +static long dimSizes1[N_DIMS1] = { DIM_0_SIZE1, DIM_1_SIZE1 }; +static long dimSizes2[N_DIMS2] = { DIM_0_SIZE2 }; +static long var1DataType = { CDF_INT2 }; +static long var1DataTypeNew = { CDF_UINT2 }; +static long var2DataType = { CDF_CHAR }; +static long var2DataTypeNew = { CDF_UCHAR }; +long var1DataType_out, var2DataType_out; +static long var1NumElements = { 1 }; +static long var1NumElementsNew = { 1 }; +static long var2NumElements = { NUM_ELEMS2 }; +static long var2NumElementsNew = { NUM_ELEMS2 }; +long var1NumElements_out, var2NumElements_out; +long var1Num_out, var2Num_out, varNum_out1, varNum_out2; +static short var1Values[DIM_0_SIZE1][DIM_1_SIZE1] = {{1,2,3},{4,5,6}}; +static char var2Values[DIM_0_SIZE2][NUM_ELEMS2] = { + {'1','1','1','1','1','1','1','1'}, + {'2','2','2','2','2','2','2','2'}, + {'3','3','3','3','3','3','3','3'}, + {'4','4','4','4','4','4','4','4'}, + {'5','5','5','5','5','5','5','5'} +}; +short var1Value_out; +static char var2Value_out[NUM_ELEMS2]; +static long recNum = { 0 }; +static long recStart = { 0 }; +static long recCount = { 1 }; +static long recInterval = { 1 }; +long indices[N_DIMS1]; +static long counts[N_DIMS1] = { DIM_0_SIZE1, DIM_1_SIZE1 }; +static long intervals[N_DIMS1] = { 1, 1 }; +static long zRecNum = { 0 }; +static long zRecStart = { 0 }; +static long zRecCount = { 1 }; +static long zRecInterval = { 1 }; +long zIndicesA[N_DIMS2]; +static long zCounts[N_DIMS2] = { DIM_0_SIZE2 }; +static long zIntervals[N_DIMS2] = { 1 }; +short var1Buffer_out[DIM_0_SIZE1][DIM_1_SIZE1]; +char var2Buffer_out[DIM_0_SIZE2][NUM_ELEMS2]; +long numDims1_out; +long dimSizes1_out[N_DIMS1]; +long numDims2_out; +long dimSizes2_out[N_DIMS2]; +long maxRec_out; +long numAttrs_out; +int i, x0, x1, x; +static long var1RecVariance = { VARY }; +static long var1RecVarianceNew = { NOVARY }; +static long var2RecVariance = { VARY }; +static long var2RecVarianceNew = { NOVARY }; +long var1RecVariance_out, var2RecVariance_out; +static long var1DimVariances[N_DIMS1] = { VARY, VARY }; +static long var1DimVariancesNew[N_DIMS1] = { NOVARY, NOVARY }; +static long var2DimVariances[N_DIMS2] = { VARY }; +static long var2DimVariancesNew[N_DIMS2] = { NOVARY }; +long var1DimVariances_out[N_DIMS1], + var2DimVariances_out[N_DIMS2]; +static char var1Name[] = "VAR1a"; +static char var2Name[] = "zVARa1"; +static char new_var1Name[] = "VAR1b"; +static char new_var2Name[] = "zVARa2"; +char var1Name_out[CDF_VAR_NAME_LEN256+1], + var2Name_out[CDF_VAR_NAME_LEN256+1]; +char CopyRightText[CDF_COPYRIGHT_LEN+1]; +char errorText[CDF_STATUSTEXT_LEN+1]; +long numRvars, numZvars; +static short pad1 = { -999 }; +static char pad2[NUM_ELEMS2+1] = { "********" }; +short pad1out; +static char pad2out[NUM_ELEMS2+1] = { " " }; +static long blockingfactor1 = 3; +static long blockingfactor2 = 4; +long blockingfactorOut1, blockingfactorOut2; +long recStartOut, recCountOut, recIntervalOut, recNumOut; +long indicesOut[CDF_MAX_DIMS], + countsOut[CDF_MAX_DIMS], + intervalsOut[CDF_MAX_DIMS]; +int dimN; +long formatOut; +long maxAllocOut1, maxAllocOut2; +long maxRecOut1, maxRecOut2, maxRecOut; +long nIndexRecsOut1, nIndexRecsOut2; +long nIndexEntriesOut1, nIndexEntriesOut2; +static long allocRecs1 = { 10 }; +static long allocRecs2 = { 8 }; +static long nZvars1 = { 1 }; +static long zVarNs1[2] = { 0 }; +static char zVarsRecBuffer1[DIM_0_SIZE1][DIM_1_SIZE1][6] = { + {{0,0,0,0,0,0},{0,0,0,0,0,0},{0,0,0,0,0,0}}, + {{0,0,0,0,0,0},{0,0,0,0,0,0},{0,0,0,0,0,0}} +}; +static char zVarsRecBufferOut1[DIM_0_SIZE1][DIM_1_SIZE1][6]; +static long nZvars2 = { 1 }; +static long zVarNs2[1] = { 1 }; +static char zVarsRecBuffer2[DIM_0_SIZE2][NUM_ELEMS2] = { + {'%','%','%','%','%','%','%','%'}, + {'%','%','%','%','%','%','%','%'}, + {'%','%','%','%','%','%','%','%'}, + {'%','%','%','%','%','%','%','%'}, + {'%','%','%','%','%','%','%','%'} +}; +static char zVarsRecBufferOut2[DIM_0_SIZE2][NUM_ELEMS2]; + +/****************************************************************************** +* Create CDF. +******************************************************************************/ +/* CDFsetFileBackwardFlag(BACKWARDFILEon); */ +status = CDFlib (CREATE_, CDF_, "TEST", 0L, dimSizes, &id, + NULL_); + +if (status < CDF_OK) { + if (status == CDF_EXISTS) { + status = CDFlib (OPEN_, CDF_, "TEST", &id, + NULL_); + if (status < CDF_OK) QuitCDF ("1.0", status); + + status = CDFlib (DELETE_, CDF_, + NULL_); + if (status < CDF_OK) QuitCDF ("1.1", status); + + status = CDFlib (CREATE_, CDF_, "TEST", 0L, dimSizes, &id, + NULL_); + if (status < CDF_OK) QuitCDF ("1.2", status); + } + else + QuitCDF ("1.3", status); +} + +/****************************************************************************** +* Create variables. +******************************************************************************/ + +status = CDFlib (CREATE_, zVAR_, var1Name, var1DataType, var1NumElements, + numDims1, dimSizes1, + var1RecVariance, var1DimVariances, + &var1Num_out, + NULL_); +if (status < CDF_OK) QuitCDF ("2.0", status); + +status = CDFlib (CREATE_, zVAR_, var2Name, var2DataType, var2NumElements, + numDims2, dimSizes2, + var2RecVariance, var2DimVariances, + &var2Num_out, + PUT_, zVAR_ALLOCATERECS_, allocRecs2, + zVAR_BLOCKINGFACTOR_, blockingfactor2, + NULL_); +if (status < CDF_OK) QuitCDF ("2.1", status); + +/****************************************************************************** +* Set/confirm pad values. +******************************************************************************/ + +status = CDFlib (SELECT_, CDF_, id, + zVAR_, var1Num_out, + PUT_, zVAR_PADVALUE_, &pad1, + SELECT_, zVAR_, var2Num_out, + PUT_, zVAR_PADVALUE_, &pad2, + NULL_); +if (status < CDF_OK) QuitCDF ("3.0", status); + +status = CDFlib (SELECT_, zVAR_, var1Num_out, + GET_, zVAR_PADVALUE_, &pad1out, + SELECT_, zVAR_, var2Num_out, + GET_, zVAR_PADVALUE_, &pad2out, + NULL_); +if (status < CDF_OK) QuitCDF ("3.1", status); + +if (pad1out != pad1) QuitCDF ("3.2", status); +if (strcmp(pad2out,pad2)) QuitCDF ("3.3", status); + +/****************************************************************************** +* Write to variables - one value at a time. +******************************************************************************/ + +status = CDFlib (SELECT_, zVAR_, var1Num_out, + zVAR_RECNUMBER_, recNum, + NULL_); +if (status < CDF_OK) QuitCDF ("4.0", status); + +for (x0 = 0; x0 < DIM_0_SIZE1; x0++) + for (x1 = 0; x1 < DIM_1_SIZE1; x1++) { + indices[0] = x0; + indices[1] = x1; + status = CDFlib (SELECT_, zVAR_DIMINDICES_, indices, + PUT_, zVAR_DATA_, &var1Values[x0][x1], + NULL_); + if (status < CDF_OK) QuitCDF ("4.1", status); +} + +status = CDFlib (SELECT_, zVAR_, var2Num_out, + zVAR_RECNUMBER_, zRecNum, + NULL_); +if (status < CDF_OK) QuitCDF ("4.2", status); + +for (x0 = 0; x0 < DIM_0_SIZE2; x0++) { + zIndicesA[0] = x0; + status = CDFlib (SELECT_, zVAR_DIMINDICES_, zIndicesA, + PUT_, zVAR_DATA_, var2Values[x0], + NULL_); + if (status < CDF_OK) QuitCDF ("4.3", status); +} + +/****************************************************************************** +* Read/verify for the variables - one value at a time. +******************************************************************************/ + +status = CDFlib (SELECT_, zVAR_, var1Num_out, + zVAR_RECNUMBER_, recNum, + NULL_); +if (status < CDF_OK) QuitCDF ("5.0", status); + +for (x0 = 0; x0 < DIM_0_SIZE1; x0++) + for (x1 = 0; x1 < DIM_1_SIZE1; x1++) { + indices[0] = x0; + indices[1] = x1; + status = CDFlib (SELECT_, zVAR_DIMINDICES_, indices, + GET_, zVAR_DATA_, &var1Value_out, + NULL_); + if (status < CDF_OK) QuitCDF ("5.1", status); + + if (var1Value_out != var1Values[x0][x1]) QuitCDF ("5.2", status); + } + +status = CDFlib (SELECT_, zVAR_, var2Num_out, + zVAR_RECNUMBER_, zRecNum, + NULL_); +if (status < CDF_OK) QuitCDF ("5.3", status); + +for (x0 = 0; x0 < DIM_0_SIZE2; x0++) { + zIndicesA[0] = x0; + status = CDFlib (SELECT_, zVAR_DIMINDICES_, zIndicesA, + GET_, zVAR_DATA_, var2Value_out, + NULL_); + if (status < CDF_OK) QuitCDF ("5.4", status); + + for (i = 0; i < NUM_ELEMS2; i++) { + if (var2Value_out[i] != var2Values[x0][i]) QuitCDF ("5.5", status); + } +} + +/****************************************************************************** +* HyperPUT to the variables - one full record at a time. +******************************************************************************/ + +for (x0 = 0; x0 < DIM_0_SIZE1; x0++) + for (x1 = 0; x1 < DIM_1_SIZE1; x1++) { + var1Values[x0][x1] = -var1Values[x0][x1]; + } + +indices[0] = 0; +indices[1] = 0; + +status = CDFlib (SELECT_, zVAR_, var1Num_out, + zVAR_RECNUMBER_, recStart, + zVAR_RECCOUNT_, recCount, + zVAR_RECINTERVAL_, recInterval, + zVAR_DIMINDICES_, indices, + zVAR_DIMCOUNTS_, counts, + zVAR_DIMINTERVALS_, intervals, + zVAR_, var1Num_out, + PUT_, zVAR_HYPERDATA_, var1Values, + NULL_); +if (status < CDF_OK) QuitCDF ("6.0", status); + +for (x0 = 0; x0 < DIM_0_SIZE2; x0++) + for (i = 0; i < NUM_ELEMS2; i++) { + var2Values[x0][i]++; + } + +zIndicesA[0] = 0; + +status = CDFlib (SELECT_, zVAR_, var2Num_out, + zVAR_RECNUMBER_, zRecStart, + zVAR_RECCOUNT_, zRecCount, + zVAR_RECINTERVAL_, zRecInterval, + zVAR_DIMINDICES_, zIndicesA, + zVAR_DIMCOUNTS_, zCounts, + zVAR_DIMINTERVALS_, zIntervals, + PUT_, zVAR_HYPERDATA_, var2Values, + NULL_); +if (status < CDF_OK) QuitCDF ("6.1", status); + +/****************************************************************************** +* HyperGET/verify for variables - one record at a time. +******************************************************************************/ + +status = CDFlib (SELECT_, zVAR_, var1Num_out, + zVAR_RECNUMBER_, recStart, + zVAR_RECCOUNT_, recCount, + zVAR_RECINTERVAL_, recInterval, + zVAR_DIMINDICES_, indices, + zVAR_DIMCOUNTS_, counts, + zVAR_DIMINTERVALS_, intervals, + zVAR_, var1Num_out, + GET_, zVAR_HYPERDATA_, var1Buffer_out, + NULL_); +if (status < CDF_OK) QuitCDF ("7.0", status); + +for (x0 = 0; x0 < DIM_0_SIZE1; x0++) + for (x1 = 0; x1 < DIM_1_SIZE1; x1++) { + if (var1Buffer_out[x0][x1] != var1Values[x0][x1]) + QuitCDF ("7.1", status); + } + +status = CDFlib (SELECT_, zVAR_, var2Num_out, + zVAR_RECNUMBER_, zRecStart, + zVAR_RECCOUNT_, zRecCount, + zVAR_RECINTERVAL_, zRecInterval, + zVAR_DIMINDICES_, zIndicesA, + zVAR_DIMCOUNTS_, zCounts, + zVAR_DIMINTERVALS_, zIntervals, + GET_, zVAR_HYPERDATA_, var2Buffer_out, + NULL_); +if (status < CDF_OK) QuitCDF ("7.2", status); + +for (x0 = 0; x0 < DIM_0_SIZE2; x0++) + for (i = 0; i < NUM_ELEMS2; i++) { + if (var2Buffer_out[x0][i] != var2Values[x0][i]) + QuitCDF ("7.3", status); + } + +/****************************************************************************** +* Confirm hyper parameters for a zVariable. +******************************************************************************/ + +status = CDFlib (CONFIRM_, zVAR_RECNUMBER_, &recStartOut, + zVAR_RECCOUNT_, &recCountOut, + zVAR_RECINTERVAL_, &recIntervalOut, + zVAR_DIMINDICES_, indicesOut, + zVAR_DIMCOUNTS_, countsOut, + zVAR_DIMINTERVALS_, intervalsOut, + NULL_); +if (status < CDF_OK) QuitCDF ("8.0", status); + +if (recStartOut != zRecStart) QuitCDF ("8.1", status); +if (recCountOut != zRecCount) QuitCDF ("8.2", status); +if (recIntervalOut != zRecInterval) QuitCDF ("8.3", status); +for (dimN = 0; dimN < N_DIMS2; dimN++) { + if (indicesOut[dimN] != zIndicesA[dimN]) QuitCDF ("8.4", status); + if (countsOut[dimN] != zCounts[dimN]) QuitCDF ("8.5", status); + if (intervalsOut[dimN] != zIntervals[dimN]) QuitCDF ("8.6", status); +} + +/****************************************************************************** +* Set/confirm sequential access position for a zVariable (and read/write a +* value). +******************************************************************************/ + +status = CDFlib (SELECT_, zVAR_SEQPOS_, zRecStart, zIndicesA, + GET_, zVAR_SEQDATA_, var2Value_out, + PUT_, zVAR_SEQDATA_, var2Value_out, + CONFIRM_, zVAR_SEQPOS_, &recNumOut, indicesOut, + NULL_); +if (status < CDF_OK) QuitCDF ("9.0", status); + +if (recNumOut != zRecStart) QuitCDF ("9.1", status); +if (indicesOut[0] != zIndicesA[0] + 2) QuitCDF ("9.2", status); + + +/****************************************************************************** +* Confirm existence of variables. +******************************************************************************/ + +status = CDFlib (CONFIRM_, zVAR_EXISTENCE_, var1Name, + zVAR_EXISTENCE_, var2Name, + NULL_); +if (status < CDF_OK) QuitCDF ("10.0", status); + +/****************************************************************************** +* Inquire variable numbers. +******************************************************************************/ + +status = CDFlib (GET_, zVAR_NUMBER_, var1Name, &varNum_out1, + zVAR_NUMBER_, var2Name, &varNum_out2, + NULL_); +if (status < CDF_OK) QuitCDF ("11.0", status); + +if (varNum_out1 != 0) QuitCDF ("11.2", status); +if (varNum_out2 != 1) QuitCDF ("11.3", status); + +/****************************************************************************** +* Rename variables. +******************************************************************************/ + +status = CDFlib (SELECT_, zVAR_NAME_, var1Name, + PUT_, zVAR_NAME_, new_var1Name, + NULL_); +if (status < CDF_OK) QuitCDF ("12.0", status); + +status = CDFlib (SELECT_, zVAR_NAME_, var2Name, + PUT_, zVAR_NAME_, new_var2Name, + NULL_); +if (status < CDF_OK) QuitCDF ("12.1", status); + +/****************************************************************************** +* Read/write multiple variable data - one record for each variable involved. +******************************************************************************/ + +status = CDFlib (SELECT_, zVARs_RECNUMBER_, 2L, + PUT_, zVARs_RECDATA_, nZvars1, zVarNs1, zVarsRecBuffer1, + SELECT_, zVARs_RECNUMBER_, 2L, + PUT_, zVARs_RECDATA_, nZvars2, zVarNs2, zVarsRecBuffer2, + NULL_); +if (status < CDF_OK) QuitCDF ("13.0", status); + +status = CDFlib (GET_, zVARs_RECDATA_, nZvars1, zVarNs1, zVarsRecBufferOut1, + GET_, zVARs_RECDATA_, nZvars2, zVarNs2, zVarsRecBufferOut2, + NULL_); +if (status < CDF_OK) QuitCDF ("13.1", status); + +if (memcmp(zVarsRecBufferOut1,zVarsRecBuffer1, + sizeof(zVarsRecBuffer1))) QuitCDF ("13.3", status); +if (memcmp(zVarsRecBufferOut2,zVarsRecBuffer2, + sizeof(zVarsRecBuffer2))) QuitCDF ("13.4", status); + +/****************************************************************************** +* Inquire variables. +******************************************************************************/ + +status = CDFlib (SELECT_, zVAR_, var1Num_out, + GET_, zVAR_NAME_, var1Name_out, + zVAR_DATATYPE_, &var1DataType_out, + zVAR_NUMELEMS_, &var1NumElements_out, + zVAR_BLOCKINGFACTOR_, &blockingfactorOut1, + zVAR_MAXallocREC_, &maxAllocOut1, + zVAR_MAXREC_, &maxRecOut1, + zVAR_nINDEXRECORDS_, &nIndexRecsOut1, + zVAR_nINDEXENTRIES_, &nIndexEntriesOut1, + CONFIRM_, zVAR_, &var1Num_out, + NULL_); +if (status < CDF_OK) QuitCDF ("14.0", status); + +if (strcmp(var1Name_out,new_var1Name) != 0) QuitCDF ("14.1", status); +if (var1DataType_out != var1DataType) QuitCDF ("14.2", status); +if (var1NumElements_out != var1NumElements) QuitCDF ("14.3", status); +if (var1Num_out != 0L) QuitCDF ("14.4", status); +if (blockingfactorOut1 != blockingfactor1) QuitCDF ("14.5", status); +if (maxAllocOut1 + 1 != allocRecs1) QuitCDF ("14.6", status); +if (maxRecOut1 != 2L) QuitCDF ("14.7", status); + +status = CDFlib (SELECT_, zVAR_, var2Num_out, + GET_, zVAR_NAME_, var2Name_out, + zVAR_DATATYPE_, &var2DataType_out, + zVAR_NUMELEMS_, &var2NumElements_out, + zVAR_BLOCKINGFACTOR_, &blockingfactorOut2, + zVAR_MAXallocREC_, &maxAllocOut2, + zVAR_MAXREC_, &maxRecOut2, + zVAR_nINDEXRECORDS_, &nIndexRecsOut2, + zVAR_nINDEXENTRIES_, &nIndexEntriesOut2, + CONFIRM_, zVAR_, &var2Num_out, + NULL_); +if (status < CDF_OK) QuitCDF ("14.8", status); + +if (strcmp(var2Name_out,new_var2Name) != 0) QuitCDF ("14.9", status); +if (var2DataType_out != var2DataType) QuitCDF ("14.10", status); +if (var2NumElements_out != var2NumElements) QuitCDF ("14.11", status); +if (var2Num_out != 1L) QuitCDF ("14.12", status); +if (blockingfactorOut2 != blockingfactor2) QuitCDF ("14.13", status); +if (maxAllocOut2 + 1 != allocRecs2) QuitCDF ("14.14", status); +if (maxRecOut2 != 2L) QuitCDF ("14.15", status); + +/****************************************************************************** +* Close CDF. +******************************************************************************/ + +status = CDFlib (CLOSE_, CDF_, + NULL_); +if (status < CDF_OK) QuitCDF ("15.0", status); + +/****************************************************************************** +* Successful completion. +******************************************************************************/ + +return EXIT_SUCCESS_; +} + + +/****************************************************************************** +* QuitCDF. +******************************************************************************/ + +void QuitCDF (where, status) +char *where; +CDFstatus status; +{ + char text[CDF_STATUSTEXT_LEN+1]; + printf ("Aborting at %s...\n", where); + if (status < CDF_OK) { + CDFlib (SELECT_, CDF_STATUS_, status, + GET_, STATUS_TEXT_, text, + NULL_); + printf ("%s\n", text); + } + CDFlib (CLOSE_, CDF_, + NULL_); + printf ("...test aborted.\n"); + exit (EXIT_FAILURE_); +} diff --git a/cdf38_1-dist/samples/cacsst2.cdf b/cdf38_1-dist/samples/cacsst2.cdf new file mode 100644 index 0000000000000000000000000000000000000000..e959b5e716d3f5c5fe468938a15d4477d2123479 GIT binary patch literal 73511 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
  • V^-iA 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 O;(aQHryXn5p8x;OZI$)_ literal 0 HcmV?d00001 diff --git a/cdf38_1-dist/samples/cacsst2.skt b/cdf38_1-dist/samples/cacsst2.skt new file mode 100644 index 0000000..b3eb37e --- /dev/null +++ b/cdf38_1-dist/samples/cacsst2.skt @@ -0,0 +1,405 @@ +! Skeleton table for the "cacsst2" CDF. +! Generated: Wednesday, 3-Apr-1996 10:18:44 +! CDF created/modified by CDF V2.5.19 +! Skeleton table created by CDF V2.6.0 + +#header + + CDF NAME: cacsst2 + DATA ENCODING: NETWORK + MAJORITY: COLUMN + FORMAT: SINGLE + +! Variables G.Attributes V.Attributes Records Dims Sizes +! --------- ------------ ------------ ------- ---- ------ + 4/0 1 8 1/z 2 180 91 + + +#GLOBALattributes + +! Attribute Entry Data +! Name Number Type Value +! --------- ------ ---- ----- + + "TITLE" 1: CDF_CHAR { "Climate Analysis Center " - + "SST blended analysis " } . + + +#VARIABLEattributes + + "FIELDNAM" + "VALIDMIN" + "VALIDMAX" + "SCALEMIN" + "SCALEMAX" + "UNITS" + "FORMAT" + "FILLVAL" + + +#variables + +! Variable Data Number Record Dimension +! Name Type Elements Variance Variances +! -------- ---- -------- -------- --------- + + "LATITUDE" CDF_INT2 1 F F T + + ! Attribute Data + ! Name Type Value + ! -------- ---- ----- + + "FIELDNAM" CDF_CHAR { "Latitude " } + "VALIDMIN" CDF_INT2 { -90 } + "VALIDMAX" CDF_INT2 { 90 } + "SCALEMIN" CDF_INT2 { -90 } + "SCALEMAX" CDF_INT2 { 90 } + "UNITS" CDF_CHAR { "deg " } + "FORMAT" CDF_CHAR { "I5 " } . + + ! NRV values follow... + + [1,1] = -90 + [1,2] = -88 + [1,3] = -86 + [1,4] = -84 + [1,5] = -82 + [1,6] = -80 + [1,7] = -78 + [1,8] = -76 + [1,9] = -74 + [1,10] = -72 + [1,11] = -70 + [1,12] = -68 + [1,13] = -66 + [1,14] = -64 + [1,15] = -62 + [1,16] = -60 + [1,17] = -58 + [1,18] = -56 + [1,19] = -54 + [1,20] = -52 + [1,21] = -50 + [1,22] = -48 + [1,23] = -46 + [1,24] = -44 + [1,25] = -42 + [1,26] = -40 + [1,27] = -38 + [1,28] = -36 + [1,29] = -34 + [1,30] = -32 + [1,31] = -30 + [1,32] = -28 + [1,33] = -26 + [1,34] = -24 + [1,35] = -22 + [1,36] = -20 + [1,37] = -18 + [1,38] = -16 + [1,39] = -14 + [1,40] = -12 + [1,41] = -10 + [1,42] = -8 + [1,43] = -6 + [1,44] = -4 + [1,45] = -2 + [1,46] = 0 + [1,47] = 2 + [1,48] = 4 + [1,49] = 6 + [1,50] = 8 + [1,51] = 10 + [1,52] = 12 + [1,53] = 14 + [1,54] = 16 + [1,55] = 18 + [1,56] = 20 + [1,57] = 22 + [1,58] = 24 + [1,59] = 26 + [1,60] = 28 + [1,61] = 30 + [1,62] = 32 + [1,63] = 34 + [1,64] = 36 + [1,65] = 38 + [1,66] = 40 + [1,67] = 42 + [1,68] = 44 + [1,69] = 46 + [1,70] = 48 + [1,71] = 50 + [1,72] = 52 + [1,73] = 54 + [1,74] = 56 + [1,75] = 58 + [1,76] = 60 + [1,77] = 62 + [1,78] = 64 + [1,79] = 66 + [1,80] = 68 + [1,81] = 70 + [1,82] = 72 + [1,83] = 74 + [1,84] = 76 + [1,85] = 78 + [1,86] = 80 + [1,87] = 82 + [1,88] = 84 + [1,89] = 86 + [1,90] = 88 + [1,91] = 90 + + +! Variable Data Number Record Dimension +! Name Type Elements Variance Variances +! -------- ---- -------- -------- --------- + + "LONGITUD" CDF_INT2 1 F T F + + ! Attribute Data + ! Name Type Value + ! -------- ---- ----- + + "FIELDNAM" CDF_CHAR { "Longitude " } + "VALIDMIN" CDF_INT2 { -180 } + "VALIDMAX" CDF_INT2 { 180 } + "SCALEMIN" CDF_INT2 { -180 } + "SCALEMAX" CDF_INT2 { 180 } + "UNITS" CDF_CHAR { "deg " } + "FORMAT" CDF_CHAR { "I5 " } . + + ! NRV values follow... + + [1,1] = -178 + [2,1] = -176 + [3,1] = -174 + [4,1] = -172 + [5,1] = -170 + [6,1] = -168 + [7,1] = -166 + [8,1] = -164 + [9,1] = -162 + [10,1] = -160 + [11,1] = -158 + [12,1] = -156 + [13,1] = -154 + [14,1] = -152 + [15,1] = -150 + [16,1] = -148 + [17,1] = -146 + [18,1] = -144 + [19,1] = -142 + [20,1] = -140 + [21,1] = -138 + [22,1] = -136 + [23,1] = -134 + [24,1] = -132 + [25,1] = -130 + [26,1] = -128 + [27,1] = -126 + [28,1] = -124 + [29,1] = -122 + [30,1] = -120 + [31,1] = -118 + [32,1] = -116 + [33,1] = -114 + [34,1] = -112 + [35,1] = -110 + [36,1] = -108 + [37,1] = -106 + [38,1] = -104 + [39,1] = -102 + [40,1] = -100 + [41,1] = -98 + [42,1] = -96 + [43,1] = -94 + [44,1] = -92 + [45,1] = -90 + [46,1] = -88 + [47,1] = -86 + [48,1] = -84 + [49,1] = -82 + [50,1] = -80 + [51,1] = -78 + [52,1] = -76 + [53,1] = -74 + [54,1] = -72 + [55,1] = -70 + [56,1] = -68 + [57,1] = -66 + [58,1] = -64 + [59,1] = -62 + [60,1] = -60 + [61,1] = -58 + [62,1] = -56 + [63,1] = -54 + [64,1] = -52 + [65,1] = -50 + [66,1] = -48 + [67,1] = -46 + [68,1] = -44 + [69,1] = -42 + [70,1] = -40 + [71,1] = -38 + [72,1] = -36 + [73,1] = -34 + [74,1] = -32 + [75,1] = -30 + [76,1] = -28 + [77,1] = -26 + [78,1] = -24 + [79,1] = -22 + [80,1] = -20 + [81,1] = -18 + [82,1] = -16 + [83,1] = -14 + [84,1] = -12 + [85,1] = -10 + [86,1] = -8 + [87,1] = -6 + [88,1] = -4 + [89,1] = -2 + [90,1] = 0 + [91,1] = 2 + [92,1] = 4 + [93,1] = 6 + [94,1] = 8 + [95,1] = 10 + [96,1] = 12 + [97,1] = 14 + [98,1] = 16 + [99,1] = 18 + [100,1] = 20 + [101,1] = 22 + [102,1] = 24 + [103,1] = 26 + [104,1] = 28 + [105,1] = 30 + [106,1] = 32 + [107,1] = 34 + [108,1] = 36 + [109,1] = 38 + [110,1] = 40 + [111,1] = 42 + [112,1] = 44 + [113,1] = 46 + [114,1] = 48 + [115,1] = 50 + [116,1] = 52 + [117,1] = 54 + [118,1] = 56 + [119,1] = 58 + [120,1] = 60 + [121,1] = 62 + [122,1] = 64 + [123,1] = 66 + [124,1] = 68 + [125,1] = 70 + [126,1] = 72 + [127,1] = 74 + [128,1] = 76 + [129,1] = 78 + [130,1] = 80 + [131,1] = 82 + [132,1] = 84 + [133,1] = 86 + [134,1] = 88 + [135,1] = 90 + [136,1] = 92 + [137,1] = 94 + [138,1] = 96 + [139,1] = 98 + [140,1] = 100 + [141,1] = 102 + [142,1] = 104 + [143,1] = 106 + [144,1] = 108 + [145,1] = 110 + [146,1] = 112 + [147,1] = 114 + [148,1] = 116 + [149,1] = 118 + [150,1] = 120 + [151,1] = 122 + [152,1] = 124 + [153,1] = 126 + [154,1] = 128 + [155,1] = 130 + [156,1] = 132 + [157,1] = 134 + [158,1] = 136 + [159,1] = 138 + [160,1] = 140 + [161,1] = 142 + [162,1] = 144 + [163,1] = 146 + [164,1] = 148 + [165,1] = 150 + [166,1] = 152 + [167,1] = 154 + [168,1] = 156 + [169,1] = 158 + [170,1] = 160 + [171,1] = 162 + [172,1] = 164 + [173,1] = 166 + [174,1] = 168 + [175,1] = 170 + [176,1] = 172 + [177,1] = 174 + [178,1] = 176 + [179,1] = 178 + [180,1] = 180 + + +! Variable Data Number Record Dimension +! Name Type Elements Variance Variances +! -------- ---- -------- -------- --------- + + "SST " CDF_REAL4 1 T T T + + ! Attribute Data + ! Name Type Value + ! -------- ---- ----- + + "FIELDNAM" CDF_CHAR { "Monthly Mean SST " } + "VALIDMIN" CDF_REAL4 { -5.0 } + "VALIDMAX" CDF_REAL4 { 40.0 } + "SCALEMIN" CDF_REAL4 { 0.0 } + "SCALEMAX" CDF_REAL4 { 35.0 } + "UNITS" CDF_CHAR { "deg C " } + "FORMAT" CDF_CHAR { "F5.2 " } + "FILLVAL" CDF_REAL4 { -1.0e+09 } . + + ! RV values were not requested. + + +! Variable Data Number Record Dimension +! Name Type Elements Variance Variances +! -------- ---- -------- -------- --------- + + "EPOCH " CDF_EPOCH 1 T F F + + ! Attribute Data + ! Name Type Value + ! -------- ---- ----- + + "FIELDNAM" CDF_CHAR { "Time Line " } + "VALIDMIN" CDF_EPOCH { 01-Jan-1982 00:00:00.000 } + "VALIDMAX" CDF_EPOCH { 01-Dec-1992 00:00:00.000 } + "SCALEMIN" CDF_EPOCH { 01-Jan-1982 00:00:00.000 } + "SCALEMAX" CDF_EPOCH { 01-Dec-1992 00:00:00.000 } + "UNITS" CDF_CHAR { "ms " } + "FORMAT" CDF_CHAR { "E14.8 " } . + + ! RV values were not requested. + + +#zVariables + +! No zVariables. + + +#end diff --git a/cdf38_1-dist/samples/cdf.inc b/cdf38_1-dist/samples/cdf.inc new file mode 100644 index 0000000..f48a740 --- /dev/null +++ b/cdf38_1-dist/samples/cdf.inc @@ -0,0 +1,1612 @@ +C----------------------------------------------------------------------- +C Copyright 1996-2014 United States Government as represented by the +C Administrator of the National Aeronautics and Space Administration. +C All Rights Reserved. +C----------------------------------------------------------------------- +C----------------------------------------------------------------------- +C +C NSSDC/CDF Include file for FORTRAN interface. +C +C Version 3.4b, 14-Dec-97, Hughes STX. +C +C Modification history: +C +C V1.0 22-Jan-91, J Love Original version (for CDF V2.0). +C V2.0 28-May-91, J Love Modified for CDF V2.1 enhancements. +C V2.1 2-Aug-91, J Love Increment for CDF V2.1.2. Added +C declarations for library functions. +C Renamed a few items. +C V3.0 19-May-92, J Love IBM PC & HP port. CDF V2.2. +C V3.1 23-Sep-92, J Love CDF V2.3 (shareable/NeXT/zVar). +C V3.1a 5-Oct-92, J Love CDF V2.3.0a (NeXT/encoding). +C V3.1b 6-Oct-92, J Love CDF V2.3.0b (CDFcompare). +C V3.1c 27-Oct-92, J Love CDF V2.3.0c (pad values). +C V3.2 12-Jan-94, J Love CDF V2.4. +C V3.2a 4-Feb-94, J Love DEC Alpha/OpenVMS port. +C V3.2b 22-Feb-94, J Love Spelling lesson. Shortened all lines +C to 72 columns or less. +C V3.3 20-Dec-94, J Love CDF V2.5. +C V3.3a 12-Jun-95, J Love EPOCH custom format. +C V3.4 16-Sep-96, J Love CDF V2.6. +C V3.4a 21-Feb-97, J Love Removed RICE. +C V3.4b 14-Dec-97, J Love Added ALPHAVMSi encoding. +C V3.5 08-Apr-04, M Liu Added new data type CDF_EPOCH16 and some +C epoch functions related to the new type. +C V3.6 26-May-05, M Liu Added new functions/routines for the +C Standard Interface. +C V3.7 10-Apr-09, M Liu Added validate and modified MAC_ENCODING +C to PPC_ENCODING +C V3.8 10-Jan-11, M Liu Added EPOCH4_STRING_LEN and +C EPOCH16_4_STRING_LEN +C V3.9 16-Mar-11, M Liu Added CDF_INT8 and CDF_TIME_TT2000 types +C and lenghts for TT2000 string. Added a +C parameter for 8-byte integer. +C V3.10 15-Mar-13, M Liu Removed "impicit none" +C----------------------------------------------------------------------- +C IMPLICIT NONE + + INTEGER, PARAMETER :: INT8 = 18 + INTEGER, PARAMETER :: KIND_INT8 = SELECTED_INT_KIND (INT8) + INTEGER, PARAMETER :: INT4 = 9 + INTEGER, PARAMETER :: KIND_INT4 = SELECTED_INT_KIND (INT4) +C----------------------------------------------------------------------- +C Limits. +C----------------------------------------------------------------------- + + INTEGER*4 CDF_MIN_DIMS + PARAMETER (CDF_MIN_DIMS = 0) + + INTEGER*4 CDF_MAX_DIMS + PARAMETER (CDF_MAX_DIMS = 10) + +C----------------------------------------------------------------------- +C Lengths. +C----------------------------------------------------------------------- + + INTEGER*4 CDF_VAR_NAME_LEN + PARAMETER (CDF_VAR_NAME_LEN = 64) + + INTEGER*4 CDF_ATTR_NAME_LEN + PARAMETER (CDF_ATTR_NAME_LEN = 64) + + INTEGER*4 CDF_VAR_NAME_LEN256 + PARAMETER (CDF_VAR_NAME_LEN256 = 256) + + INTEGER*4 CDF_ATTR_NAME_LEN256 + PARAMETER (CDF_ATTR_NAME_LEN256 = 256) + + INTEGER*4 CDF_COPYRIGHT_LEN + PARAMETER (CDF_COPYRIGHT_LEN = 256) + + INTEGER*4 CDF_STATUSTEXT_LEN + PARAMETER (CDF_STATUSTEXT_LEN = 120) + + INTEGER*4 CDF_PATHNAME_LEN + PARAMETER (CDF_PATHNAME_LEN = 512) + + INTEGER*4 EPOCH_STRING_LEN + PARAMETER (EPOCH_STRING_LEN = 24) + + INTEGER*4 EPOCH1_STRING_LEN + PARAMETER (EPOCH1_STRING_LEN = 16) + + INTEGER*4 EPOCH2_STRING_LEN + PARAMETER (EPOCH2_STRING_LEN = 14) + + INTEGER*4 EPOCH3_STRING_LEN + PARAMETER (EPOCH3_STRING_LEN = 24) + + INTEGER*4 EPOCH4_STRING_LEN + PARAMETER (EPOCH4_STRING_LEN = 24) + + INTEGER*4 EPOCH16_STRING_LEN + PARAMETER (EPOCH16_STRING_LEN = 36) + + INTEGER*4 EPOCH16_1_STRING_LEN + PARAMETER (EPOCH16_1_STRING_LEN = 24) + + INTEGER*4 EPOCH16_2_STRING_LEN + PARAMETER (EPOCH16_2_STRING_LEN = 14) + + INTEGER*4 EPOCH16_3_STRING_LEN + PARAMETER (EPOCH16_3_STRING_LEN = 36) + + INTEGER*4 EPOCH16_4_STRING_LEN + PARAMETER (EPOCH16_4_STRING_LEN = 32) + + INTEGER*4 EPOCHx_STRING_MAX + PARAMETER (EPOCHx_STRING_MAX = 50) + + INTEGER*4 EPOCHx_FORMAT_MAX + PARAMETER (EPOCHx_FORMAT_MAX = 68) + + INTEGER*4 TT2000_0_STRING_LEN + PARAMETER (TT2000_0_STRING_LEN = 30) + + INTEGER*4 TT2000_1_STRING_LEN + PARAMETER (TT2000_1_STRING_LEN = 19) + + INTEGER*4 TT2000_2_STRING_LEN + PARAMETER (TT2000_2_STRING_LEN = 14) + + INTEGER*4 TT2000_3_STRING_LEN + PARAMETER (TT2000_3_STRING_LEN = 29) + +C----------------------------------------------------------------------- +C Data types. +C----------------------------------------------------------------------- + + INTEGER*4 CDF_INT1 + PARAMETER (CDF_INT1 = 1) + + INTEGER*4 CDF_INT2 + PARAMETER (CDF_INT2 = 2) + + INTEGER*4 CDF_INT4 + PARAMETER (CDF_INT4 = 4) + + INTEGER*4 CDF_INT8 + PARAMETER (CDF_INT8 = 8) + + INTEGER*4 CDF_UINT1 + PARAMETER (CDF_UINT1 = 11) + + INTEGER*4 CDF_UINT2 + PARAMETER (CDF_UINT2 = 12) + + INTEGER*4 CDF_UINT4 + PARAMETER (CDF_UINT4 = 14) + + INTEGER*4 CDF_REAL4 + PARAMETER (CDF_REAL4 = 21) + + INTEGER*4 CDF_REAL8 + PARAMETER (CDF_REAL8 = 22) + + INTEGER*4 CDF_EPOCH + PARAMETER (CDF_EPOCH = 31) + + INTEGER*4 CDF_EPOCH16 + PARAMETER (CDF_EPOCH16 = 32) + + INTEGER*4 CDF_TIME_TT2000 + PARAMETER (CDF_TIME_TT2000 = 33) + + INTEGER*4 CDF_BYTE + PARAMETER (CDF_BYTE = 41) + + INTEGER*4 CDF_FLOAT + PARAMETER (CDF_FLOAT = 44) + + INTEGER*4 CDF_DOUBLE + PARAMETER (CDF_DOUBLE = 45) + + INTEGER*4 CDF_CHAR + PARAMETER (CDF_CHAR = 51) + + INTEGER*4 CDF_UCHAR + PARAMETER (CDF_UCHAR = 52) + +C----------------------------------------------------------------------- +C Encodings. +C----------------------------------------------------------------------- + + INTEGER*4 NETWORK_ENCODING + PARAMETER (NETWORK_ENCODING = 1) + + INTEGER*4 SUN_ENCODING + PARAMETER (SUN_ENCODING = 2) + + INTEGER*4 VAX_ENCODING + PARAMETER (VAX_ENCODING = 3) + + INTEGER*4 DECSTATION_ENCODING + PARAMETER (DECSTATION_ENCODING = 4) + + INTEGER*4 SGi_ENCODING + PARAMETER (SGi_ENCODING = 5) + + INTEGER*4 IBMPC_ENCODING + PARAMETER (IBMPC_ENCODING = 6) + + INTEGER*4 IBMRS_ENCODING + PARAMETER (IBMRS_ENCODING = 7) + + INTEGER*4 HOST_ENCODING + PARAMETER (HOST_ENCODING = 8) + + INTEGER*4 PPC_ENCODING + PARAMETER (PPC_ENCODING = 9) + INTEGER*4 MAC_ENCODING + PARAMETER (MAC_ENCODING = PPC_ENCODING) + + INTEGER*4 HP_ENCODING + PARAMETER (HP_ENCODING = 11) + + INTEGER*4 NeXT_ENCODING + PARAMETER (NeXT_ENCODING = 12) + + INTEGER*4 ALPHAOSF1_ENCODING + PARAMETER (ALPHAOSF1_ENCODING = 13) + + INTEGER*4 ALPHAVMSd_ENCODING + PARAMETER (ALPHAVMSd_ENCODING = 14) + + INTEGER*4 ALPHAVMSg_ENCODING + PARAMETER (ALPHAVMSg_ENCODING = 15) + + INTEGER*4 ALPHAVMSi_ENCODING + PARAMETER (ALPHAVMSi_ENCODING = 16) + +C----------------------------------------------------------------------- +C Decodings. +C----------------------------------------------------------------------- + + INTEGER*4 NETWORK_DECODING + PARAMETER (NETWORK_DECODING = NETWORK_ENCODING) + + INTEGER*4 SUN_DECODING + PARAMETER (SUN_DECODING = SUN_ENCODING) + + INTEGER*4 VAX_DECODING + PARAMETER (VAX_DECODING = VAX_ENCODING) + + INTEGER*4 DECSTATION_DECODING + PARAMETER (DECSTATION_DECODING = DECSTATION_ENCODING) + + INTEGER*4 SGi_DECODING + PARAMETER (SGi_DECODING = SGi_ENCODING) + + INTEGER*4 IBMPC_DECODING + PARAMETER (IBMPC_DECODING = IBMPC_ENCODING) + + INTEGER*4 IBMRS_DECODING + PARAMETER (IBMRS_DECODING = IBMRS_ENCODING) + + INTEGER*4 HOST_DECODING + PARAMETER (HOST_DECODING = HOST_ENCODING) + + INTEGER*4 PPC_DECODING + PARAMETER (PPC_DECODING = PPC_ENCODING) + INTEGER*4 MAC_DECODING + PARAMETER (MAC_DECODING = PPC_ENCODING) + + INTEGER*4 HP_DECODING + PARAMETER (HP_DECODING = HP_ENCODING) + + INTEGER*4 NeXT_DECODING + PARAMETER (NeXT_DECODING = NeXT_ENCODING) + + INTEGER*4 ALPHAOSF1_DECODING + PARAMETER (ALPHAOSF1_DECODING = ALPHAOSF1_ENCODING) + + INTEGER*4 ALPHAVMSd_DECODING + PARAMETER (ALPHAVMSd_DECODING = ALPHAVMSd_ENCODING) + + INTEGER*4 ALPHAVMSg_DECODING + PARAMETER (ALPHAVMSg_DECODING = ALPHAVMSg_ENCODING) + + INTEGER*4 ALPHAVMSi_DECODING + PARAMETER (ALPHAVMSi_DECODING = ALPHAVMSi_ENCODING) + +C----------------------------------------------------------------------- +C Variances (record and dimension). +C----------------------------------------------------------------------- + + INTEGER*4 VARY + PARAMETER (VARY = -1) + + INTEGER*4 NOVARY + PARAMETER (NOVARY = 0) + +C----------------------------------------------------------------------- +C Majorities. +C----------------------------------------------------------------------- + + INTEGER*4 ROW_MAJOR + PARAMETER (ROW_MAJOR = 1) + + INTEGER*4 COLUMN_MAJOR + PARAMETER (COLUMN_MAJOR = 2) + +C----------------------------------------------------------------------- +C Formats. +C----------------------------------------------------------------------- + + INTEGER*4 SINGLE_FILE + PARAMETER (SINGLE_FILE = 1) + + INTEGER*4 MULTI_FILE + PARAMETER (MULTI_FILE = 2) + +C----------------------------------------------------------------------- +C Scopes. +C----------------------------------------------------------------------- + + INTEGER*4 GLOBAL_SCOPE + PARAMETER (GLOBAL_SCOPE = 1) + + INTEGER*4 VARIABLE_SCOPE + PARAMETER (VARIABLE_SCOPE = 2) + +C----------------------------------------------------------------------- +C Readonly modes. +C----------------------------------------------------------------------- + + INTEGER*4 READONLYon + PARAMETER (READONLYon = -1) + + INTEGER*4 READONLYoff + PARAMETER (READONLYoff = 0) + +C----------------------------------------------------------------------- +C zModes. +C----------------------------------------------------------------------- + + INTEGER*4 zMODEoff + PARAMETER (zMODEoff = 0) + + INTEGER*4 zMODEon1 + PARAMETER (zMODEon1 = 1) + + INTEGER*4 zMODEon2 + PARAMETER (zMODEon2 = 2) + +C----------------------------------------------------------------------- +C Negative to positive floating point zero modes. +C----------------------------------------------------------------------- + + INTEGER*4 NEGtoPOSfp0on + PARAMETER (NEGtoPOSfp0on = -1) + + INTEGER*4 NEGtoPOSfp0off + PARAMETER (NEGtoPOSfp0off = 0) + +C----------------------------------------------------------------------- +C Backward file modes. +C----------------------------------------------------------------------- + + INTEGER*4 BACKWARDFILEon + PARAMETER (BACKWARDFILEon = 1) + + INTEGER*4 BACKWARDFILEoff + PARAMETER (BACKWARDFILEoff = 0) + +C----------------------------------------------------------------------- +C CDF validate modes. +C----------------------------------------------------------------------- + + INTEGER*4 VALIDATEFILEon + PARAMETER (VALIDATEFILEon = 1) + + INTEGER*4 VALIDATEFILEoff + PARAMETER (VALIDATEFILEoff = 0) +C----------------------------------------------------------------------- +C Checksum modes. +C----------------------------------------------------------------------- + + INTEGER*4 NO_CHECKSUM + PARAMETER (NO_CHECKSUM = 0) + + INTEGER*4 NONE_CHECKSUM + PARAMETER (NONE_CHECKSUM = 0) + + INTEGER*4 MD5_CHECKSUM + PARAMETER (MD5_CHECKSUM = 1) + + INTEGER*4 OTHER_CHECKSUM + PARAMETER (OTHER_CHECKSUM = 2) + +C----------------------------------------------------------------------- +C Compression/sparseness constants. +C----------------------------------------------------------------------- + + INTEGER*4 CDF_MAX_PARMS + PARAMETER (CDF_MAX_PARMS = 5) + + INTEGER*4 NO_COMPRESSION + PARAMETER (NO_COMPRESSION = 0) + + INTEGER*4 RLE_COMPRESSION + PARAMETER (RLE_COMPRESSION = 1) + + INTEGER*4 HUFF_COMPRESSION + PARAMETER (HUFF_COMPRESSION = 2) + + INTEGER*4 AHUFF_COMPRESSION + PARAMETER (AHUFF_COMPRESSION = 3) + + INTEGER*4 GZIP_COMPRESSION + PARAMETER (GZIP_COMPRESSION = 5) + + INTEGER*4 RLE_OF_ZEROs + PARAMETER (RLE_OF_ZEROs = 0) + + INTEGER*4 OPTIMAL_ENCODING_TREES + PARAMETER (OPTIMAL_ENCODING_TREES = 0) + + INTEGER*4 NO_SPARSEARRAYS + PARAMETER (NO_SPARSEARRAYS = 0) + + INTEGER*4 NO_SPARSERECORDS + PARAMETER (NO_SPARSERECORDS = 0) + + INTEGER*4 PAD_SPARSERECORDS + PARAMETER (PAD_SPARSERECORDS = 1) + + INTEGER*4 PREV_SPARSERECORDS + PARAMETER (PREV_SPARSERECORDS = 2) + +C----------------------------------------------------------------------- +C Status codes. +C----------------------------------------------------------------------- + +C !--------------------------------------------------------------- +C ! INFO codes. +C !--------------------------------------------------------------- + + INTEGER*4 VIRTUAL_RECORD_DATA + PARAMETER (VIRTUAL_RECORD_DATA = 1001) + + INTEGER*4 DID_NOT_COMPRESS + PARAMETER (DID_NOT_COMPRESS = 1002) + + INTEGER*4 VAR_ALREADY_CLOSED + PARAMETER (VAR_ALREADY_CLOSED = 1003) + + INTEGER*4 SINGLE_FILE_FORMAT + PARAMETER (SINGLE_FILE_FORMAT = 1004) + + INTEGER*4 NO_PADVALUE_SPECIFIED + PARAMETER (NO_PADVALUE_SPECIFIED = 1005) + + INTEGER*4 NO_VARS_IN_CDF + PARAMETER (NO_VARS_IN_CDF = 1006) + + INTEGER*4 MULTI_FILE_FORMAT + PARAMETER (MULTI_FILE_FORMAT = 1007) + + INTEGER*4 SOME_ALREADY_ALLOCATED + PARAMETER (SOME_ALREADY_ALLOCATED = 1008) + + INTEGER*4 PRECEEDING_RECORDS_ALLOCATED + PARAMETER (PRECEEDING_RECORDS_ALLOCATED = 1009) + + INTEGER*4 TT2000_CDF_MAYNEEDUPDATE + PARAMETER (TT2000_CDF_MAYNEEDUPDATE = 1010) + +C !--------------------------------------------------------------- +C ! OK code. +C !--------------------------------------------------------------- + + INTEGER*4 CDF_OK + PARAMETER (CDF_OK = 0) + +C !--------------------------------------------------------------- +C ! WARNING codes. +C !--------------------------------------------------------------- + + INTEGER*4 ATTR_NAME_TRUNC + PARAMETER (ATTR_NAME_TRUNC = -1001) + + INTEGER*4 CDF_NAME_TRUNC + PARAMETER (CDF_NAME_TRUNC = -1002) + + INTEGER*4 VAR_NAME_TRUNC + PARAMETER (VAR_NAME_TRUNC = -1003) + + INTEGER*4 NEGATIVE_FP_ZERO + PARAMETER (NEGATIVE_FP_ZERO = -1004) + +C -1005 unused. + + INTEGER*4 FORCED_PARAMETER + PARAMETER (FORCED_PARAMETER = -1006) + + INTEGER*4 NA_FOR_VARIABLE + PARAMETER (NA_FOR_VARIABLE = -1007) + +C !--------------------------------------------------------------- +C ! Warning threshold, not actually a status code. +C !--------------------------------------------------------------- + + INTEGER*4 CDF_WARN + PARAMETER (CDF_WARN = -2000) + +C !--------------------------------------------------------------- +C ! ERROR codes. +C !--------------------------------------------------------------- + + INTEGER*4 ATTR_EXISTS + PARAMETER (ATTR_EXISTS = -2001) + + INTEGER*4 BAD_CDF_ID + PARAMETER (BAD_CDF_ID = -2002) + + INTEGER*4 BAD_DATA_TYPE + PARAMETER (BAD_DATA_TYPE = -2003) + + INTEGER*4 BAD_DIM_SIZE + PARAMETER (BAD_DIM_SIZE = -2004) + + INTEGER*4 BAD_DIM_INDEX + PARAMETER (BAD_DIM_INDEX = -2005) + + INTEGER*4 BAD_ENCODING + PARAMETER (BAD_ENCODING = -2006) + + INTEGER*4 BAD_MAJORITY + PARAMETER (BAD_MAJORITY = -2007) + + INTEGER*4 BAD_NUM_DIMS + PARAMETER (BAD_NUM_DIMS = -2008) + + INTEGER*4 BAD_REC_NUM + PARAMETER (BAD_REC_NUM = -2009) + + INTEGER*4 BAD_SCOPE + PARAMETER (BAD_SCOPE = -2010) + + INTEGER*4 BAD_NUM_ELEMS + PARAMETER (BAD_NUM_ELEMS = -2011) + + INTEGER*4 CDF_OPEN_ERROR + PARAMETER (CDF_OPEN_ERROR = -2012) + + INTEGER*4 CDF_EXISTS + PARAMETER (CDF_EXISTS = -2013) + + INTEGER*4 BAD_FORMAT + PARAMETER (BAD_FORMAT = -2014) + + INTEGER*4 BAD_ALLOCATE_RECS + PARAMETER (BAD_ALLOCATE_RECS = -2015) + + INTEGER*4 BAD_CDF_EXTENSION + PARAMETER (BAD_CDF_EXTENSION = -2016) + + INTEGER*4 NO_SUCH_ATTR + PARAMETER (NO_SUCH_ATTR = -2017) + + INTEGER*4 NO_SUCH_ENTRY + PARAMETER (NO_SUCH_ENTRY = -2018) + + INTEGER*4 NO_SUCH_VAR + PARAMETER (NO_SUCH_VAR = -2019) + + INTEGER*4 VAR_READ_ERROR + PARAMETER (VAR_READ_ERROR = -2020) + + INTEGER*4 VAR_WRITE_ERROR + PARAMETER (VAR_WRITE_ERROR = -2021) + + INTEGER*4 BAD_ARGUMENT + PARAMETER (BAD_ARGUMENT = -2022) + + INTEGER*4 IBM_PC_OVERFLOW + PARAMETER (IBM_PC_OVERFLOW = -2023) + + INTEGER*4 TOO_MANY_VARS + PARAMETER (TOO_MANY_VARS = -2024) + + INTEGER*4 VAR_EXISTS + PARAMETER (VAR_EXISTS = -2025) + + INTEGER*4 BAD_MALLOC + PARAMETER (BAD_MALLOC = -2026) + + INTEGER*4 NOT_A_CDF + PARAMETER (NOT_A_CDF = -2027) + + INTEGER*4 CORRUPTED_V2_CDF + PARAMETER (CORRUPTED_V2_CDF = -2028) + + INTEGER*4 VAR_OPEN_ERROR + PARAMETER (VAR_OPEN_ERROR = -2029) + + INTEGER*4 BAD_INITIAL_RECS + PARAMETER (BAD_INITIAL_RECS = -2030) + + INTEGER*4 BAD_BLOCKING_FACTOR + PARAMETER (BAD_BLOCKING_FACTOR = -2031) + + INTEGER*4 END_OF_VAR + PARAMETER (END_OF_VAR = -2032) + +C -2033 unused. + + INTEGER*4 BAD_CDFSTATUS + PARAMETER (BAD_CDFSTATUS = -2034) + + INTEGER*4 CDF_INTERNAL_ERROR + PARAMETER (CDF_INTERNAL_ERROR = -2035) + + INTEGER*4 BAD_NUM_VARS + PARAMETER (BAD_NUM_VARS = -2036) + + INTEGER*4 BAD_REC_COUNT + PARAMETER (BAD_REC_COUNT = -2037) + + INTEGER*4 BAD_REC_INTERVAL + PARAMETER (BAD_REC_INTERVAL = -2038) + + INTEGER*4 BAD_DIM_COUNT + PARAMETER (BAD_DIM_COUNT = -2039) + + INTEGER*4 BAD_DIM_INTERVAL + PARAMETER (BAD_DIM_INTERVAL = -2040) + + INTEGER*4 BAD_VAR_NUM + PARAMETER (BAD_VAR_NUM = -2041) + + INTEGER*4 BAD_ATTR_NUM + PARAMETER (BAD_ATTR_NUM = -2042) + + INTEGER*4 BAD_ENTRY_NUM + PARAMETER (BAD_ENTRY_NUM = -2043) + + INTEGER*4 BAD_ATTR_NAME + PARAMETER (BAD_ATTR_NAME = -2044) + + INTEGER*4 BAD_VAR_NAME + PARAMETER (BAD_VAR_NAME = -2045) + + INTEGER*4 NO_ATTR_SELECTED + PARAMETER (NO_ATTR_SELECTED = -2046) + + INTEGER*4 NO_ENTRY_SELECTED + PARAMETER (NO_ENTRY_SELECTED = -2047) + + INTEGER*4 NO_VAR_SELECTED + PARAMETER (NO_VAR_SELECTED = -2048) + + INTEGER*4 BAD_CDF_NAME + PARAMETER (BAD_CDF_NAME = -2049) + +C -2050 unused. + + INTEGER*4 CANNOT_CHANGE + PARAMETER (CANNOT_CHANGE = -2051) + + INTEGER*4 NO_STATUS_SELECTED + PARAMETER (NO_STATUS_SELECTED = -2052) + + INTEGER*4 NO_CDF_SELECTED + PARAMETER (NO_CDF_SELECTED = -2053) + + INTEGER*4 READ_ONLY_DISTRIBUTION + PARAMETER (READ_ONLY_DISTRIBUTION = -2054) + + INTEGER*4 CDF_CLOSE_ERROR + PARAMETER (CDF_CLOSE_ERROR = -2055) + + INTEGER*4 VAR_CLOSE_ERROR + PARAMETER (VAR_CLOSE_ERROR = -2056) + +C -2057 unused. + + INTEGER*4 BAD_FNC_OR_ITEM + PARAMETER (BAD_FNC_OR_ITEM = -2058) + +C -2059 unused. + + INTEGER*4 ILLEGAL_ON_V1_CDF + PARAMETER (ILLEGAL_ON_V1_CDF = -2060) + +C -2061 unused. +C -2062 unused. + + INTEGER*4 BAD_CACHE_SIZE + PARAMETER (BAD_CACHE_SIZE = -2063) + +C -2064 unused. +C -2065 unused. + + INTEGER*4 CDF_CREATE_ERROR + PARAMETER (CDF_CREATE_ERROR = -2066) + + INTEGER*4 NO_SUCH_CDF + PARAMETER (NO_SUCH_CDF = -2067) + + INTEGER*4 VAR_CREATE_ERROR + PARAMETER (VAR_CREATE_ERROR = -2068) + +C -2069 unused. + + INTEGER*4 READ_ONLY_MODE + PARAMETER (READ_ONLY_MODE = -2070) + + INTEGER*4 ILLEGAL_IN_zMODE + PARAMETER (ILLEGAL_IN_zMODE = -2071) + + INTEGER*4 BAD_zMODE + PARAMETER (BAD_zMODE = -2072) + + INTEGER*4 BAD_READONLY_MODE + PARAMETER (BAD_READONLY_MODE = -2073) + + INTEGER*4 CDF_READ_ERROR + PARAMETER (CDF_READ_ERROR = -2074) + + INTEGER*4 CDF_WRITE_ERROR + PARAMETER (CDF_WRITE_ERROR = -2075) + + INTEGER*4 ILLEGAL_FOR_SCOPE + PARAMETER (ILLEGAL_FOR_SCOPE = -2076) + + INTEGER*4 NO_MORE_ACCESS + PARAMETER (NO_MORE_ACCESS = -2077) + +C -2078 unused. + + INTEGER*4 BAD_DECODING + PARAMETER (BAD_DECODING = -2079) + +C -2080 unused. + + INTEGER*4 BAD_NEGtoPOSfp0_MODE + PARAMETER (BAD_NEGtoPOSfp0_MODE = -2081) + + INTEGER*4 UNSUPPORTED_OPERATION + PARAMETER (UNSUPPORTED_OPERATION = -2082) + + INTEGER*4 CDF_SAVE_ERROR + PARAMETER (CDF_SAVE_ERROR = -2083) + + INTEGER*4 VAR_SAVE_ERROR + PARAMETER (VAR_SAVE_ERROR = -2084) + +C -2085 unused. + + INTEGER*4 NO_WRITE_ACCESS + PARAMETER (NO_WRITE_ACCESS = -2086) + + INTEGER*4 NO_DELETE_ACCESS + PARAMETER (NO_DELETE_ACCESS = -2087) + + INTEGER*4 CDF_DELETE_ERROR + PARAMETER (CDF_DELETE_ERROR = -2088) + + INTEGER*4 VAR_DELETE_ERROR + PARAMETER (VAR_DELETE_ERROR = -2089) + + INTEGER*4 UNKNOWN_COMPRESSION + PARAMETER (UNKNOWN_COMPRESSION = -2090) + + INTEGER*4 CANNOT_COMPRESS + PARAMETER (CANNOT_COMPRESS = -2091) + + INTEGER*4 DECOMPRESSION_ERROR + PARAMETER (DECOMPRESSION_ERROR = -2092) + + INTEGER*4 COMPRESSION_ERROR + PARAMETER (COMPRESSION_ERROR = -2093) + +C -2094 unused. +C -2095 unused. + + INTEGER*4 EMPTY_COMPRESSED_CDF + PARAMETER (EMPTY_COMPRESSED_CDF = -2096) + + INTEGER*4 BAD_COMPRESSION_PARM + PARAMETER (BAD_COMPRESSION_PARM = -2097) + + INTEGER*4 UNKNOWN_SPARSENESS + PARAMETER (UNKNOWN_SPARSENESS = -2098) + + INTEGER*4 CANNOT_SPARSERECORDS + PARAMETER (CANNOT_SPARSERECORDS = -2099) + + INTEGER*4 CANNOT_SPARSEARRAYS + PARAMETER (CANNOT_SPARSEARRAYS = -2100) + + INTEGER*4 TOO_MANY_PARMS + PARAMETER (TOO_MANY_PARMS = -2101) + + INTEGER*4 NO_SUCH_RECORD + PARAMETER (NO_SUCH_RECORD = -2102) + + INTEGER*4 CANNOT_ALLOCATE_RECORDS + PARAMETER (CANNOT_ALLOCATE_RECORDS = -2103) + +C -2104 unused. +C -2105 unused. + + INTEGER*4 SCRATCH_DELETE_ERROR + PARAMETER (SCRATCH_DELETE_ERROR = -2106) + + INTEGER*4 SCRATCH_CREATE_ERROR + PARAMETER (SCRATCH_CREATE_ERROR = -2107) + + INTEGER*4 SCRATCH_READ_ERROR + PARAMETER (SCRATCH_READ_ERROR = -2108) + + INTEGER*4 SCRATCH_WRITE_ERROR + PARAMETER (SCRATCH_WRITE_ERROR = -2109) + + INTEGER*4 BAD_SPARSEARRAYS_PARM + PARAMETER (BAD_SPARSEARRAYS_PARM = -2110) + + INTEGER*4 BAD_SCRATCH_DIR + PARAMETER (BAD_SCRATCH_DIR = -2111) + + INTEGER*4 NOT_A_CDF_OR_NOT_SUPPORTED + PARAMETER (NOT_A_CDF_OR_NOT_SUPPORTED = -2113) + + INTEGER*4 CORRUPTED_V3_CDF + PARAMETER (CORRUPTED_V3_CDF = -2223) + + INTEGER*4 ILLEGAL_EPOCH_FIELD + PARAMETER (ILLEGAL_EPOCH_FIELD = -2224) + + INTEGER*4 BAD_CHECKSUM + PARAMETER (BAD_CHECKSUM = -2225) + + INTEGER*4 CHECKSUM_ERROR + PARAMETER (CHECKSUM_ERROR = -2226) + + INTEGER*4 CHECKSUM_NOT_ALLOWED + PARAMETER (CHECKSUM_NOT_ALLOWED = -2227) + + INTEGER*4 IS_A_NETCDF + PARAMETER (IS_A_NETCDF = -2228) + + INTEGER*4 TT2000_TIME_ERROR + PARAMETER (TT2000_TIME_ERROR = -2229) + + INTEGER*4 UNABLE_TO_PROCESS_CDF + PARAMETER (UNABLE_TO_PROCESS_CDF = -2230) + + INTEGER*4 ZLIB_COMPRESS_ERROR + PARAMETER (ZLIB_COMPRESS_ERROR = -2231) + + INTEGER*4 ZLIB_UNCOMPRESS_ERROR + PARAMETER (ZLIB_UNCOMPRESS_ERROR = -2232) + + INTEGER*4 CANNOT_INSERT_RECORDS + PARAMETER (CANNOT_INSERT_RECORDS = -2233) + + INTEGER*4 TT2000_USED_OUTDATED_TABLE + PARAMETER (TT2000_USED_OUTDATED_TABLE = -2234) + + INTEGER*4 BADDATE_LEAPSECOND_UPDATED + PARAMETER (BADDATE_LEAPSECOND_UPDATED = -2235) + + REAL*8 ILLEGAL_EPOCH_VALUE + PARAMETER (ILLEGAL_EPOCH_VALUE = -1.0) + + INTEGER (KIND=KIND_INT8) :: ILLEGAL_TT2000_VALUE = + . -9223372036854775805_KIND_INT8 + + INTEGER (KIND=KIND_INT8) :: DUMMY_TT2000_VALUE = + . -9223372036854775807_KIND_INT8 - 1 + +C----------------------------------------------------------------------- +C Functions (for INTERNAL interface). +C NOTE: These values must be different from those of the items. +C----------------------------------------------------------------------- + + INTEGER*4 CREATE_ + PARAMETER (CREATE_ = 1001) + + INTEGER*4 OPEN_ + PARAMETER (OPEN_ = 1002) + + INTEGER*4 DELETE_ + PARAMETER (DELETE_ = 1003) + + INTEGER*4 CLOSE_ + PARAMETER (CLOSE_ = 1004) + + INTEGER*4 SELECT_ + PARAMETER (SELECT_ = 1005) + + INTEGER*4 CONFIRM_ + PARAMETER (CONFIRM_ = 1006) + + INTEGER*4 GET_ + PARAMETER (GET_ = 1007) + + INTEGER*4 PUT_ + PARAMETER (PUT_ = 1008) + + INTEGER*4 SAVE_ + PARAMETER (SAVE_ = 1009) + + INTEGER*4 BACKWARD_ + PARAMETER (BACKWARD_ = 1010) + + INTEGER*4 GETCDFFILEBACKWARD_ + PARAMETER (GETCDFFILEBACKWARD_ = 1011) + + INTEGER*4 CHECKSUM_ + PARAMETER (CHECKSUM_ = 1012) + + INTEGER*4 GETCDFCHECKSUM_ + PARAMETER (GETCDFCHECKSUM_ = 1013) + + INTEGER*4 VALIDATE_ + PARAMETER (VALIDATE_ = 1014) + + INTEGER*4 GETCDFVALIDATE_ + PARAMETER (GETCDFVALIDATE_ = 1015) + + INTEGER*4 NULL_ + PARAMETER (NULL_ = 1000) + +C----------------------------------------------------------------------- +C Items on which functions are performed (for INTERNAL interface). +C NOTE: These values must be different from those of the functions. +C----------------------------------------------------------------------- + + INTEGER*4 CDF_ + PARAMETER (CDF_ = 1) + + INTEGER CDF_NAME_ + PARAMETER (CDF_NAME_ = 2) + + INTEGER*4 CDF_ENCODING_ + PARAMETER (CDF_ENCODING_ = 3) + + INTEGER*4 CDF_DECODING_ + PARAMETER (CDF_DECODING_ = 4) + + INTEGER*4 CDF_MAJORITY_ + PARAMETER (CDF_MAJORITY_ = 5) + + INTEGER*4 CDF_FORMAT_ + PARAMETER (CDF_FORMAT_ = 6) + + INTEGER*4 CDF_COPYRIGHT_ + PARAMETER (CDF_COPYRIGHT_ = 7) + + INTEGER*4 CDF_NUMrVARS_ + PARAMETER (CDF_NUMrVARS_ = 8) + + INTEGER*4 CDF_NUMzVARS_ + PARAMETER (CDF_NUMzVARS_ = 9) + + INTEGER*4 CDF_NUMATTRS_ + PARAMETER (CDF_NUMATTRS_ = 10) + + INTEGER*4 CDF_NUMgATTRS_ + PARAMETER (CDF_NUMgATTRS_ = 11) + + INTEGER*4 CDF_NUMvATTRS_ + PARAMETER (CDF_NUMvATTRS_ = 12) + + INTEGER*4 CDF_VERSION_ + PARAMETER (CDF_VERSION_ = 13) + + INTEGER*4 CDF_RELEASE_ + PARAMETER (CDF_RELEASE_ = 14) + + INTEGER*4 CDF_INCREMENT_ + PARAMETER (CDF_INCREMENT_ = 15) + + INTEGER*4 CDF_STATUS_ + PARAMETER (CDF_STATUS_ = 16) + + INTEGER*4 CDF_READONLY_MODE_ + PARAMETER (CDF_READONLY_MODE_ = 17) + + INTEGER*4 CDF_zMODE_ + PARAMETER (CDF_zMODE_ = 18) + + INTEGER*4 CDF_NEGtoPOSfp0_MODE_ + PARAMETER (CDF_NEGtoPOSfp0_MODE_ = 19) + + INTEGER*4 LIB_COPYRIGHT_ + PARAMETER (LIB_COPYRIGHT_ = 20) + + INTEGER*4 LIB_VERSION_ + PARAMETER (LIB_VERSION_ = 21) + + INTEGER*4 LIB_RELEASE_ + PARAMETER (LIB_RELEASE_ = 22) + + INTEGER*4 LIB_INCREMENT_ + PARAMETER (LIB_INCREMENT_ = 23) + + INTEGER*4 LIB_subINCREMENT_ + PARAMETER (LIB_subINCREMENT_ = 24) + + INTEGER*4 rVARs_NUMDIMS_ + PARAMETER (rVARs_NUMDIMS_ = 25) + + INTEGER*4 rVARs_DIMSIZES_ + PARAMETER (rVARs_DIMSIZES_ = 26) + + INTEGER*4 rVARs_MAXREC_ + PARAMETER (rVARs_MAXREC_ = 27) + + INTEGER*4 rVARs_RECDATA_ + PARAMETER (rVARs_RECDATA_ = 28) + + INTEGER*4 rVARs_RECNUMBER_ + PARAMETER (rVARs_RECNUMBER_ = 29) + + INTEGER*4 rVARs_RECCOUNT_ + PARAMETER (rVARs_RECCOUNT_ = 30) + + INTEGER*4 rVARs_RECINTERVAL_ + PARAMETER (rVARs_RECINTERVAL_ = 31) + + INTEGER*4 rVARs_DIMINDICES_ + PARAMETER (rVARs_DIMINDICES_ = 32) + + INTEGER*4 rVARs_DIMCOUNTS_ + PARAMETER (rVARs_DIMCOUNTS_ = 33) + + INTEGER*4 rVARs_DIMINTERVALS_ + PARAMETER (rVARs_DIMINTERVALS_ = 34) + + INTEGER*4 rVAR_ + PARAMETER (rVAR_ = 35) + + INTEGER*4 rVAR_NAME_ + PARAMETER (rVAR_NAME_ = 36) + + INTEGER*4 rVAR_DATATYPE_ + PARAMETER (rVAR_DATATYPE_ = 37) + + INTEGER*4 rVAR_NUMELEMS_ + PARAMETER (rVAR_NUMELEMS_ = 38) + + INTEGER*4 rVAR_RECVARY_ + PARAMETER (rVAR_RECVARY_ = 39) + + INTEGER*4 rVAR_DIMVARYS_ + PARAMETER (rVAR_DIMVARYS_ = 40) + + INTEGER*4 rVAR_NUMBER_ + PARAMETER (rVAR_NUMBER_ = 41) + + INTEGER*4 rVAR_DATA_ + PARAMETER (rVAR_DATA_ = 42) + + INTEGER*4 rVAR_HYPERDATA_ + PARAMETER (rVAR_HYPERDATA_ = 43) + + INTEGER*4 rVAR_SEQDATA_ + PARAMETER (rVAR_SEQDATA_ = 44) + + INTEGER*4 rVAR_SEQPOS_ + PARAMETER (rVAR_SEQPOS_ = 45) + + INTEGER*4 rVAR_MAXREC_ + PARAMETER (rVAR_MAXREC_ = 46) + + INTEGER*4 rVAR_MAXallocREC_ + PARAMETER (rVAR_MAXallocREC_ = 47) + + INTEGER*4 rVAR_DATASPEC_ + PARAMETER (rVAR_DATASPEC_ = 48) + + INTEGER*4 rVAR_PADVALUE_ + PARAMETER (rVAR_PADVALUE_ = 49) + + INTEGER*4 rVAR_INITIALRECS_ + PARAMETER (rVAR_INITIALRECS_ = 50) + + INTEGER*4 rVAR_BLOCKINGFACTOR_ + PARAMETER (rVAR_BLOCKINGFACTOR_ = 51) + + INTEGER*4 rVAR_nINDEXRECORDS_ + PARAMETER (rVAR_nINDEXRECORDS_ = 52) + + INTEGER*4 rVAR_nINDEXENTRIES_ + PARAMETER (rVAR_nINDEXENTRIES_ = 53) + + INTEGER*4 rVAR_EXISTENCE_ + PARAMETER (rVAR_EXISTENCE_ = 54) + + INTEGER*4 zVARs_MAXREC_ + PARAMETER (zVARs_MAXREC_ = 55) + + INTEGER*4 zVARs_RECDATA_ + PARAMETER (zVARs_RECDATA_ = 56) + + INTEGER*4 zVAR_ + PARAMETER (zVAR_ = 57) + + INTEGER*4 zVAR_NAME_ + PARAMETER (zVAR_NAME_ = 58) + + INTEGER*4 zVAR_DATATYPE_ + PARAMETER (zVAR_DATATYPE_ = 59) + + INTEGER*4 zVAR_NUMELEMS_ + PARAMETER (zVAR_NUMELEMS_ = 60) + + INTEGER*4 zVAR_NUMDIMS_ + PARAMETER (zVAR_NUMDIMS_ = 61) + + INTEGER*4 zVAR_DIMSIZES_ + PARAMETER (zVAR_DIMSIZES_ = 62) + + INTEGER*4 zVAR_RECVARY_ + PARAMETER (zVAR_RECVARY_ = 63) + + INTEGER*4 zVAR_DIMVARYS_ + PARAMETER (zVAR_DIMVARYS_ = 64) + + INTEGER*4 zVAR_NUMBER_ + PARAMETER (zVAR_NUMBER_ = 65) + + INTEGER*4 zVAR_DATA_ + PARAMETER (zVAR_DATA_ = 66) + + INTEGER*4 zVAR_HYPERDATA_ + PARAMETER (zVAR_HYPERDATA_ = 67) + + INTEGER*4 zVAR_SEQDATA_ + PARAMETER (zVAR_SEQDATA_ = 68) + + INTEGER*4 zVAR_SEQPOS_ + PARAMETER (zVAR_SEQPOS_ = 69) + + INTEGER*4 zVAR_MAXREC_ + PARAMETER (zVAR_MAXREC_ = 70) + + INTEGER*4 zVAR_MAXallocREC_ + PARAMETER (zVAR_MAXallocREC_ = 71) + + INTEGER*4 zVAR_DATASPEC_ + PARAMETER (zVAR_DATASPEC_ = 72) + + INTEGER*4 zVAR_PADVALUE_ + PARAMETER (zVAR_PADVALUE_ = 73) + + INTEGER*4 zVAR_INITIALRECS_ + PARAMETER (zVAR_INITIALRECS_ = 74) + + INTEGER*4 zVAR_BLOCKINGFACTOR_ + PARAMETER (zVAR_BLOCKINGFACTOR_ = 75) + + INTEGER*4 zVAR_nINDEXRECORDS_ + PARAMETER (zVAR_nINDEXRECORDS_ = 76) + + INTEGER*4 zVAR_nINDEXENTRIES_ + PARAMETER (zVAR_nINDEXENTRIES_ = 77) + + INTEGER*4 zVAR_EXISTENCE_ + PARAMETER (zVAR_EXISTENCE_ = 78) + + INTEGER*4 zVAR_RECNUMBER_ + PARAMETER (zVAR_RECNUMBER_ = 79) + + INTEGER*4 zVAR_RECCOUNT_ + PARAMETER (zVAR_RECCOUNT_ = 80) + + INTEGER*4 zVAR_RECINTERVAL_ + PARAMETER (zVAR_RECINTERVAL_ = 81) + + INTEGER*4 zVAR_DIMINDICES_ + PARAMETER (zVAR_DIMINDICES_ = 82) + + INTEGER*4 zVAR_DIMCOUNTS_ + PARAMETER (zVAR_DIMCOUNTS_ = 83) + + INTEGER*4 zVAR_DIMINTERVALS_ + PARAMETER (zVAR_DIMINTERVALS_ = 84) + + INTEGER*4 ATTR_ + PARAMETER (ATTR_ = 85) + + INTEGER*4 ATTR_SCOPE_ + PARAMETER (ATTR_SCOPE_ = 86) + + INTEGER*4 ATTR_NAME_ + PARAMETER (ATTR_NAME_ = 87) + + INTEGER*4 ATTR_NUMBER_ + PARAMETER (ATTR_NUMBER_ = 88) + + INTEGER*4 ATTR_MAXgENTRY_ + PARAMETER (ATTR_MAXgENTRY_ = 89) + + INTEGER*4 ATTR_NUMgENTRIES_ + PARAMETER (ATTR_NUMgENTRIES_ = 90) + + INTEGER*4 ATTR_MAXrENTRY_ + PARAMETER (ATTR_MAXrENTRY_ = 91) + + INTEGER*4 ATTR_NUMrENTRIES_ + PARAMETER (ATTR_NUMrENTRIES_ = 92) + + INTEGER*4 ATTR_MAXzENTRY_ + PARAMETER (ATTR_MAXzENTRY_ = 93) + + INTEGER*4 ATTR_NUMzENTRIES_ + PARAMETER (ATTR_NUMzENTRIES_ = 94) + + INTEGER*4 ATTR_EXISTENCE_ + PARAMETER (ATTR_EXISTENCE_ = 95) + + INTEGER*4 gENTRY_ + PARAMETER (gENTRY_ = 96) + + INTEGER*4 gENTRY_EXISTENCE_ + PARAMETER (gENTRY_EXISTENCE_ = 97) + + INTEGER*4 gENTRY_DATATYPE_ + PARAMETER (gENTRY_DATATYPE_ = 98) + + INTEGER*4 gENTRY_NUMELEMS_ + PARAMETER (gENTRY_NUMELEMS_ = 99) + + INTEGER*4 gENTRY_DATASPEC_ + PARAMETER (gENTRY_DATASPEC_ = 100) + + INTEGER*4 gENTRY_DATA_ + PARAMETER (gENTRY_DATA_ = 101) + + INTEGER*4 rENTRY_ + PARAMETER (rENTRY_ = 102) + + INTEGER*4 rENTRY_NAME_ + PARAMETER (rENTRY_NAME_ = 103) + + INTEGER*4 rENTRY_EXISTENCE_ + PARAMETER (rENTRY_EXISTENCE_ = 104) + + INTEGER*4 rENTRY_DATATYPE_ + PARAMETER (rENTRY_DATATYPE_ = 105) + + INTEGER*4 rENTRY_NUMELEMS_ + PARAMETER (rENTRY_NUMELEMS_ = 106) + + INTEGER*4 rENTRY_DATASPEC_ + PARAMETER (rENTRY_DATASPEC_ = 107) + + INTEGER*4 rENTRY_DATA_ + PARAMETER (rENTRY_DATA_ = 108) + + INTEGER*4 zENTRY_ + PARAMETER (zENTRY_ = 109) + + INTEGER*4 zENTRY_NAME_ + PARAMETER (zENTRY_NAME_ = 110) + + INTEGER*4 zENTRY_EXISTENCE_ + PARAMETER (zENTRY_EXISTENCE_ = 111) + + INTEGER*4 zENTRY_DATATYPE_ + PARAMETER (zENTRY_DATATYPE_ = 112) + + INTEGER*4 zENTRY_NUMELEMS_ + PARAMETER (zENTRY_NUMELEMS_ = 113) + + INTEGER*4 zENTRY_DATASPEC_ + PARAMETER (zENTRY_DATASPEC_ = 114) + + INTEGER*4 zENTRY_DATA_ + PARAMETER (zENTRY_DATA_ = 115) + + INTEGER*4 STATUS_TEXT_ + PARAMETER (STATUS_TEXT_ = 116) + + INTEGER*4 CDF_CACHESIZE_ + PARAMETER (CDF_CACHESIZE_ = 117) + + INTEGER*4 rVARs_CACHESIZE_ + PARAMETER (rVARs_CACHESIZE_ = 118) + + INTEGER*4 zVARs_CACHESIZE_ + PARAMETER (zVARs_CACHESIZE_ = 119) + + INTEGER*4 rVAR_CACHESIZE_ + PARAMETER (rVAR_CACHESIZE_ = 120) + + INTEGER*4 zVAR_CACHESIZE_ + PARAMETER (zVAR_CACHESIZE_ = 121) + + INTEGER*4 zVARs_RECNUMBER_ + PARAMETER (zVARs_RECNUMBER_ = 122) + + INTEGER*4 rVAR_ALLOCATERECS_ + PARAMETER (rVAR_ALLOCATERECS_ = 123) + + INTEGER*4 zVAR_ALLOCATERECS_ + PARAMETER (zVAR_ALLOCATERECS_ = 124) + + INTEGER*4 DATATYPE_SIZE_ + PARAMETER (DATATYPE_SIZE_ = 125) + + INTEGER*4 CURgENTRY_EXISTENCE_ + PARAMETER (CURgENTRY_EXISTENCE_ = 126) + + INTEGER*4 CURrENTRY_EXISTENCE_ + PARAMETER (CURrENTRY_EXISTENCE_ = 127) + + INTEGER*4 CURzENTRY_EXISTENCE_ + PARAMETER (CURzENTRY_EXISTENCE_ = 128) + + INTEGER*4 CDF_INFO_ + PARAMETER (CDF_INFO_ = 129) + + INTEGER*4 CDF_COMPRESSION_ + PARAMETER (CDF_COMPRESSION_ = 130) + + INTEGER*4 zVAR_COMPRESSION_ + PARAMETER (zVAR_COMPRESSION_ = 131) + + INTEGER*4 zVAR_SPARSERECORDS_ + PARAMETER (zVAR_SPARSERECORDS_ = 132) + + INTEGER*4 zVAR_SPARSEARRAYS_ + PARAMETER (zVAR_SPARSEARRAYS_ = 133) + + INTEGER*4 zVAR_ALLOCATEBLOCK_ + PARAMETER (zVAR_ALLOCATEBLOCK_ = 134) + + INTEGER*4 zVAR_NUMRECS_ + PARAMETER (zVAR_NUMRECS_ = 135) + + INTEGER*4 zVAR_NUMallocRECS_ + PARAMETER (zVAR_NUMallocRECS_ = 136) + + INTEGER*4 rVAR_COMPRESSION_ + PARAMETER (rVAR_COMPRESSION_ = 137) + + INTEGER*4 rVAR_SPARSERECORDS_ + PARAMETER (rVAR_SPARSERECORDS_ = 138) + + INTEGER*4 rVAR_SPARSEARRAYS_ + PARAMETER (rVAR_SPARSEARRAYS_ = 139) + + INTEGER*4 rVAR_ALLOCATEBLOCK_ + PARAMETER (rVAR_ALLOCATEBLOCK_ = 140) + + INTEGER*4 rVAR_NUMRECS_ + PARAMETER (rVAR_NUMRECS_ = 141) + + INTEGER*4 rVAR_NUMallocRECS_ + PARAMETER (rVAR_NUMallocRECS_ = 142) + + INTEGER*4 rVAR_ALLOCATEDFROM_ + PARAMETER (rVAR_ALLOCATEDFROM_ = 143) + + INTEGER*4 rVAR_ALLOCATEDTO_ + PARAMETER (rVAR_ALLOCATEDTO_ = 144) + + INTEGER*4 zVAR_ALLOCATEDFROM_ + PARAMETER (zVAR_ALLOCATEDFROM_ = 145) + + INTEGER*4 zVAR_ALLOCATEDTO_ + PARAMETER (zVAR_ALLOCATEDTO_ = 146) + + INTEGER*4 zVAR_nINDEXLEVELS_ + PARAMETER (zVAR_nINDEXLEVELS_ = 147) + + INTEGER*4 rVAR_nINDEXLEVELS_ + PARAMETER (rVAR_nINDEXLEVELS_ = 148) + + INTEGER*4 CDF_SCRATCHDIR_ + PARAMETER (CDF_SCRATCHDIR_ = 149) + + INTEGER*4 rVAR_RESERVEPERCENT_ + PARAMETER (rVAR_RESERVEPERCENT_ = 150) + + INTEGER*4 zVAR_RESERVEPERCENT_ + PARAMETER (zVAR_RESERVEPERCENT_ = 151) + + INTEGER*4 rVAR_RECORDS_ + PARAMETER (rVAR_RECORDS_ = 152) + + INTEGER*4 zVAR_RECORDS_ + PARAMETER (zVAR_RECORDS_ = 153) + + INTEGER*4 STAGE_CACHESIZE_ + PARAMETER (STAGE_CACHESIZE_ = 154) + + INTEGER*4 COMPRESS_CACHESIZE_ + PARAMETER (COMPRESS_CACHESIZE_ = 155) + + INTEGER*4 CDF_CHECKSUM_ + PARAMETER (CDF_CHECKSUM_ = 156) + + INTEGER*4 rVAR_RECORDS_RENUMBER_ + PARAMETER (rVAR_RECORDS_RENUMBER_ = 157) + + INTEGER*4 zVAR_RECORDS_RENUMBER_ + PARAMETER (zVAR_RECORDS_RENUMBER_ = 158) + + INTEGER*4 CDF_LEAPSECONDLASTUPDATED_ + PARAMETER (CDF_LEAPSECONDLASTUPDATED_ = 159) + +C----------------------------------------------------------------------- +C Declarations for functions. These may cause compiler warnings on some +C machines if the functions are not used. If that is a problem, remove +C them from here and declare the functions only in the routines that use +C them. Some compilers also have command line options that can be used +C to supress the warning messages. +C----------------------------------------------------------------------- + + INTEGER*4 CDF_var_num + INTEGER*4 CDF_attr_num + INTEGER*4 CDF_get_var_num + INTEGER*4 CDF_get_attr_num + INTEGER*4 CDF_confirm_attr_existence + INTEGER*4 CDF_confirm_zvar_existence + INTEGER*4 CDF_confirm_gentry_existence + INTEGER*4 CDF_confirm_rentry_existence + INTEGER*4 CDF_confirm_zentry_existence + INTEGER*4 CDF_confirm_zvar_padvalue_exist + INTEGER*4 CDF_get_filebackward + INTEGER*4 CDF_get_validate + INTEGER*4 CDF_getleapsecondstablestatus + INTEGER*4 CDF_getrowsinleapsecondstable + + INTEGER*4 CDF_lib + INTEGER*4 CDF_lib_4 + INTEGER*4 CDF_lib_5 + INTEGER*4 CDF_lib_6 + INTEGER*4 CDF_lib_7 + INTEGER*4 CDF_lib_8 + INTEGER*4 CDF_lib_9 + INTEGER*4 CDF_lib_10 + INTEGER*4 CDF_lib_11 + INTEGER*4 CDF_lib_12 + INTEGER*4 CDF_lib_13 + INTEGER*4 CDF_lib_14 + INTEGER*4 CDF_lib_15 + INTEGER*4 CDF_lib_16 + INTEGER*4 CDF_lib_17 + INTEGER*4 CDF_lib_18 + INTEGER*4 CDF_lib_19 + INTEGER*4 CDF_lib_20 + INTEGER*4 CDF_lib_21 + INTEGER*4 CDF_lib_22 + INTEGER*4 CDF_lib_23 + INTEGER*4 CDF_lib_24 + INTEGER*4 CDF_lib_25 + +C----------------------------------------------------------------------- +C Synonyms for compatibility with older releases. +C----------------------------------------------------------------------- + + INTEGER*4 CDF_DOCUMENT_LEN + PARAMETER (CDF_DOCUMENT_LEN = CDF_COPYRIGHT_LEN) + + INTEGER*4 CDF_ERRTEXT_LEN + PARAMETER (CDF_ERRTEXT_LEN = CDF_STATUSTEXT_LEN) + + INTEGER*4 CDF_NUMDIMS_ + PARAMETER (CDF_NUMDIMS_ = rVARs_NUMDIMS_) + + INTEGER*4 CDF_DIMSIZES_ + PARAMETER (CDF_DIMSIZES_ = rVARs_DIMSIZES_) + + INTEGER*4 CDF_MAXREC_ + PARAMETER (CDF_MAXREC_ = rVARs_MAXREC_) + + INTEGER*4 CDF_RECNUMBER_ + PARAMETER (CDF_RECNUMBER_ = rVARs_RECNUMBER_) + + INTEGER*4 CDF_RECCOUNT_ + PARAMETER (CDF_RECCOUNT_ = rVARs_RECCOUNT_) + + INTEGER*4 CDF_RECINTERVAL_ + PARAMETER (CDF_RECINTERVAL_ = rVARs_RECINTERVAL_) + + INTEGER*4 CDF_DIMINDICES_ + PARAMETER (CDF_DIMINDICES_ = rVARs_DIMINDICES_) + + INTEGER*4 CDF_DIMCOUNTS_ + PARAMETER (CDF_DIMCOUNTS_ = rVARs_DIMCOUNTS_) + + INTEGER*4 CDF_DIMINTERVALS_ + PARAMETER (CDF_DIMINTERVALS_ = rVARs_DIMINTERVALS_) + + INTEGER*4 CDF_NUMVARS_ + PARAMETER (CDF_NUMVARS_ = CDF_NUMrVARS_) + + INTEGER*4 VAR_ + PARAMETER (VAR_ = rVAR_) + + INTEGER*4 VAR_NAME_ + PARAMETER (VAR_NAME_ = rVAR_NAME_) + + INTEGER*4 VAR_DATATYPE_ + PARAMETER (VAR_DATATYPE_ = rVAR_DATATYPE_) + + INTEGER*4 VAR_NUMELEMS_ + PARAMETER (VAR_NUMELEMS_ = rVAR_NUMELEMS_) + + INTEGER*4 VAR_RECVARY_ + PARAMETER (VAR_RECVARY_ = rVAR_RECVARY_) + + INTEGER*4 VAR_DIMVARYS_ + PARAMETER (VAR_DIMVARYS_ = rVAR_DIMVARYS_) + + INTEGER*4 VAR_NUMBER_ + PARAMETER (VAR_NUMBER_ = rVAR_NUMBER_) + + INTEGER*4 VAR_DATA_ + PARAMETER (VAR_DATA_ = rVAR_DATA_) + + INTEGER*4 VAR_HYPERDATA_ + PARAMETER (VAR_HYPERDATA_ = rVAR_HYPERDATA_) + + INTEGER*4 VAR_SEQDATA_ + PARAMETER (VAR_SEQDATA_ = rVAR_SEQDATA_) + + INTEGER*4 VAR_SEQPOS_ + PARAMETER (VAR_SEQPOS_ = rVAR_SEQPOS_) + + INTEGER*4 VAR_MAXREC_ + PARAMETER (VAR_MAXREC_ = rVAR_MAXREC_) + + INTEGER*4 VAR_DATASPEC_ + PARAMETER (VAR_DATASPEC_ = rVAR_DATASPEC_) + + INTEGER*4 VAR_FILLVALUE_ + PARAMETER (VAR_FILLVALUE_ = rVAR_PADVALUE_) + + INTEGER*4 VAR_INITIALRECS_ + PARAMETER (VAR_INITIALRECS_ = rVAR_INITIALRECS_) + + INTEGER*4 VAR_EXTENDRECS_ + PARAMETER (VAR_EXTENDRECS_ = rVAR_BLOCKINGFACTOR_) + + INTEGER*4 ATTR_MAXENTRY_ + PARAMETER (ATTR_MAXENTRY_ = ATTR_MAXrENTRY_) + + INTEGER*4 ATTR_NUMENTRIES_ + PARAMETER (ATTR_NUMENTRIES_ = ATTR_NUMrENTRIES_) + + INTEGER*4 ENTRY_ + PARAMETER (ENTRY_ = rENTRY_) + + INTEGER*4 ENTRY_DATATYPE_ + PARAMETER (ENTRY_DATATYPE_ = rENTRY_DATATYPE_) + + INTEGER*4 ENTRY_NUMELEMS_ + PARAMETER (ENTRY_NUMELEMS_ = rENTRY_NUMELEMS_) + + INTEGER*4 ENTRY_DATA_ + PARAMETER (ENTRY_DATA_ = rENTRY_DATA_) + + INTEGER*4 MIPSEL_ENCODING + PARAMETER (MIPSEL_ENCODING = DECSTATION_ENCODING) + + INTEGER*4 MIPSEB_ENCODING + PARAMETER (MIPSEB_ENCODING = SGi_ENCODING) + + INTEGER*4 rVAR_EXISTANCE_ + PARAMETER (rVAR_EXISTANCE_ = rVAR_EXISTENCE_) + + INTEGER*4 zVAR_EXISTANCE_ + PARAMETER (zVAR_EXISTANCE_ = zVAR_EXISTENCE_) + + INTEGER*4 ATTR_EXISTANCE_ + PARAMETER (ATTR_EXISTANCE_ = ATTR_EXISTENCE_) + + INTEGER*4 gENTRY_EXISTANCE_ + PARAMETER (gENTRY_EXISTANCE_ = gENTRY_EXISTENCE_) + + INTEGER*4 rENTRY_EXISTANCE_ + PARAMETER (rENTRY_EXISTANCE_ = rENTRY_EXISTENCE_) + + INTEGER*4 zENTRY_EXISTANCE_ + PARAMETER (zENTRY_EXISTANCE_ = zENTRY_EXISTENCE_) + + INTEGER*4 GLOBAL_SCOPE_ASSUMED + PARAMETER (GLOBAL_SCOPE_ASSUMED = GLOBAL_SCOPE) + + INTEGER*4 VARIABLE_SCOPE_ASSUMED + PARAMETER (VARIABLE_SCOPE_ASSUMED = VARIABLE_SCOPE) + + INTEGER*4 BAD_EXTEND_RECS + PARAMETER (BAD_EXTEND_RECS = BAD_BLOCKING_FACTOR) + + INTEGER*4 rVAR_EXTENDRECS_ + PARAMETER (rVAR_EXTENDRECS_ = rVAR_BLOCKINGFACTOR_) + + INTEGER*4 zVAR_EXTENDRECS_ + PARAMETER (zVAR_EXTENDRECS_ = zVAR_BLOCKINGFACTOR_) + + INTEGER*4 COL_MAJOR + PARAMETER (COL_MAJOR = COLUMN_MAJOR) diff --git a/cdf38_1-dist/samples/d103a2x.cdf b/cdf38_1-dist/samples/d103a2x.cdf new file mode 100644 index 0000000000000000000000000000000000000000..627c17679f924799615836c5f72c2dd2139b89b5 GIT binary patch literal 10502 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 literal 0 HcmV?d00001 diff --git a/cdf38_1-dist/samples/example.dat b/cdf38_1-dist/samples/example.dat new file mode 100644 index 0000000..aac0c0b --- /dev/null +++ b/cdf38_1-dist/samples/example.dat @@ -0,0 +1,96 @@ +0000 -165. +40. 20.0 +0000 -165. +30. 21.7 +0000 -150. +40. 19.2 +0000 -150. +30. 20.7 +0100 -165. +40. 18.2 +0100 -165. +30. 19.3 +0100 -150. +40. 22.0 +0100 -150. +30. 19.2 +0200 -165. +40. 19.9 +0200 -165. +30. 19.3 +0200 -150. +40. 19.6 +0200 -150. +30. 19.0 +0300 -165. +40. 19.9 +0300 -165. +30. 19.3 +0300 -150. +40. 12.6 +0300 -150. +30. 19.0 +0400 -165. +40. 19.7 +0400 -165. +30. 13.3 +0400 -150. +40. 19.6 +0400 -150. +30. 19.0 +0500 -165. +40. 17.9 +0500 -165. +30. 19.3 +0500 -150. +40. 19.6 +0500 -150. +30. 19.6 +0600 -165. +40. 19.9 +0600 -165. +30. 20.3 +0600 -150. +40. 19.6 +0600 -150. +30. 12.0 +0700 -165. +40. 15.9 +0700 -165. +30. 19.3 +0700 -150. +40. 19.6 +0700 -150. +30. 19.0 +0800 -165. +40. 19.9 +0800 -165. +30. 19.3 +0800 -150. +40. 13.6 +0800 -150. +30. 19.0 +0900 -165. +40. 19.9 +0900 -165. +30. 19.3 +0900 -150. +40. 19.8 +0900 -150. +30. 29.0 +1000 -165. +40. 19.9 +1000 -165. +30. 19.3 +1000 -150. +40. 13.6 +1000 -150. +30. 19.0 +1100 -165. +40. 19.9 +1100 -165. +30. 19.3 +1100 -150. +40. 19.6 +1100 -150. +30. 19.0 +1200 -165. +40. 16.9 +1200 -165. +30. 19.9 +1200 -150. +40. 19.6 +1200 -150. +30. 19.0 +1300 -165. +40. 19.9 +1300 -165. +30. 12.3 +1300 -150. +40. 19.6 +1300 -150. +30. 19.0 +1400 -165. +40. 19.9 +1400 -165. +30. 11.3 +1400 -150. +40. 19.6 +1400 -150. +30. 19.0 +1500 -165. +40. 19.9 +1500 -165. +30. 18.3 +1500 -150. +40. 19.6 +1500 -150. +30. 19.0 +1600 -165. +40. 16.9 +1600 -165. +30. 19.3 +1600 -150. +40. 19.6 +1600 -150. +30. 19.0 +1700 -165. +40. 18.9 +1700 -165. +30. 19.3 +1700 -150. +40. 19.6 +1700 -150. +30. 19.0 +1800 -165. +40. 17.9 +1800 -165. +30. 19.3 +1800 -150. +40. 19.6 +1800 -150. +30. 17.0 +1900 -165. +40. 17.9 +1900 -165. +30. 17.3 +1900 -150. +40. 19.6 +1900 -150. +30. 19.0 +2000 -165. +40. 12.9 +2000 -165. +30. 19.3 +2000 -150. +40. 19.6 +2000 -150. +30. 10.0 +2100 -165. +40. 19.9 +2100 -165. +30. 19.3 +2100 -150. +40. 19.5 +2100 -150. +30. 19.0 +2200 -165. +40. 19.9 +2200 -165. +30. 19.3 +2200 -150. +40. 19.6 +2200 -150. +30. 19.5 +2300 -165. +40. 21.0 +2300 -165. +30. 19.5 +2300 -150. +40. 18.4 +2300 -150. +30. 22.0 diff --git a/cdf38_1-dist/samples/example1.c b/cdf38_1-dist/samples/example1.c new file mode 100644 index 0000000..b701a42 --- /dev/null +++ b/cdf38_1-dist/samples/example1.c @@ -0,0 +1,231 @@ +/****************************************************************************** +* +* NSSDC/CDF Create an example CDF using the New Standard Interface +* that was introduced in CDF 3.1. +* +* History: +* +* V1.0 10-Jan-2006, D. Han Original version +* +******************************************************************************/ + +/****************************************************************************** +* +* Note(s): +* +* This program would have to be modified to run on a DEC Alpha because the +* C language `long' data type is 8 bytes rather than 4 (the CDF data type of +* CDF_INT4 is always 4 bytes). +* +******************************************************************************/ + +/****************************************************************************** +* Necessary include files. +******************************************************************************/ + +#include +#include +#include +#include + +#include "cdf.h" + +/****************************************************************************** +* Function prototypes. +******************************************************************************/ + +void StatusHandler (); + +/****************************************************************************** +* MAIN. +******************************************************************************/ +int main () { + +CDFid id; /* CDF identifier. */ +CDFstatus status; /* CDF completion status. */ + +FILE *fp; /* File pointer - used to read input data file. */ + +char *title[] = {"CDF title", "Author: CDF"}; +short lat[181]; +int time, i, *image; +long TimeVarNum, LatVarNum, ImageVarNum, attrNum, recNum, titleAttrNum, + dimIndices[2], dimCounts[2], dimInterval[2], dimSizes[2], dimVarys[2]; +long cType, /* Compression type */ + cParms[CDF_MAX_PARMS]; /* Compression parameters */ + +assert(sizeof(short) == 2); /* Test if short matches with CDF_INT2 */ +assert(sizeof(int) == 4); /* Test if int matches with CDF_INT4 */ + +/****************************************************************************** +* Create the CDF. +******************************************************************************/ +status = CDFcreateCDF ("example1", &id); +if (status != CDF_OK) StatusHandler (status); + +/****************************************************************************** +* Create zVariables. +******************************************************************************/ +status = CDFcreatezVar (id, + "Time", /* Variable name - case sensitive */ + CDF_INT4, /* Data type */ + 1L, /* Number of elements */ + 0L, /* Dimentionality */ + dimSizes, /* Dummy dimension sizes since dim = 0 */ + VARY, /* Record variance */ + VARY, /* Dimension variance */ + &TimeVarNum); +if (status != CDF_OK) StatusHandler (status); + +dimSizes[0] = 181; +dimVarys[0] = VARY; +dimVarys[1] = VARY; +status = CDFcreatezVar (id, "Latitude", CDF_INT2, 1L, 1L, dimSizes, + VARY, dimVarys, &LatVarNum); +if (status != CDF_OK) StatusHandler (status); + +dimSizes[0] = 10; +dimSizes[1] = 20; +dimVarys[0] = VARY; +dimVarys[1] = VARY; +status = CDFcreatezVar (id, "Image", CDF_INT4, 1L, 2L, dimSizes, + VARY, dimVarys, &ImageVarNum); +if (status != CDF_OK) StatusHandler (status); + +/* Define compression for the 'Image' variable. */ +cType = GZIP_COMPRESSION; +cParms[0] = 5; /* GZIP compression level */ +status = CDFsetzVarCompression (id, ImageVarNum, cType, cParms); +if (status != CDF_OK) StatusHandler (status); + +/****************************************************************************** +* Create global and variable attributes. +******************************************************************************/ +status = CDFcreateAttr (id, "TITLE", GLOBAL_SCOPE, &titleAttrNum); +if (status != CDF_OK) StatusHandler (status); + +status = CDFcreateAttr (id, "FIELDNAM", VARIABLE_SCOPE, &attrNum); +if (status != CDF_OK) StatusHandler (status); + +status = CDFcreateAttr (id, "UNITS", VARIABLE_SCOPE, &attrNum); +if (status != CDF_OK) StatusHandler (status); + +/****************************************************************************** +* Write TITLE gAttribute gEntry. +******************************************************************************/ +status = CDFputAttrgEntry (id, titleAttrNum, + 0L, /* Attribute entry number */ + CDF_CHAR, strlen(title[0]), title[0]); +if (status != CDF_OK) StatusHandler (status); + +status = CDFputAttrgEntry (id, titleAttrNum, + 1L, /* Attribute entry number */ + CDF_CHAR, strlen(title[1]), title[1]); +if (status != CDF_OK) StatusHandler (status); + +/****************************************************************************** +* Write vAttribute zEntries for 'Time' zVariable. +******************************************************************************/ +status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"FIELDNAM"), + CDFvarNum(id,"Time"), CDF_CHAR, 19L, + "Time of observation"); +if (status != CDF_OK) StatusHandler (status); + +status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"UNITS"), + CDFvarNum(id,"Time"), CDF_CHAR, 11L, + "Hour/Minute"); + +/****************************************************************************** +* Write data for 'Time' zVariable. +******************************************************************************/ +recNum = 0L; +time = 23; +status = CDFputzVarRecordData (id, TimeVarNum, recNum, &time); +if (status != CDF_OK) StatusHandler (status); +recNum = 1L; +time = 24; +status = CDFputzVarRecordData (id, TimeVarNum, recNum, &time); +if (status != CDF_OK) StatusHandler (status); + +/****************************************************************************** +* Write data for 'Latitude' zVariable. +******************************************************************************/ +dimIndices[0] = 0; +dimCounts[0] = 181; +dimInterval[0] = 1; +for (i=-90; i <= 90; i++) + lat[i+90] = i; + +status = CDFhyperPutzVarData (id, LatVarNum, + 0L, /* record start */ + 1L, /* # of records to write */ + 1L, /* record interval */ + dimIndices, /* dimension dimIndices */ + dimCounts, /* dimension counts */ + dimInterval, /* dimension interval */ + lat); + +if (status != CDF_OK) StatusHandler (status); + +/****************************************************************************** +* Write data for 'Image' zVariable. +******************************************************************************/ +dimIndices[0] = 0; +dimIndices[1] = 0; +dimCounts[0] = 10; +dimCounts[1] = 20; +dimInterval[0] = 1; +dimInterval[1] = 1; + +image = (int *) malloc (sizeof(int) * 600); +for (i=0; i < 600; i++) /* Load 3 records of data */ + *(image+i) = i; + +status = CDFhyperPutzVarData (id, ImageVarNum, + 0L, /* record start */ + 3L, /* # of records to write */ + 1L, /* record interval */ + dimIndices, /* dimension dimIndices */ + dimCounts, /* dimension counts */ + dimInterval, /* dimension interval */ + image); + +if (status != CDF_OK) StatusHandler (status); + +/****************************************************************************** +* Close CDF. +******************************************************************************/ +status = CDFcloseCDF (id); +if (status != CDF_OK) StatusHandler (status); + +return 0; +} + +/****************************************************************************** +* Status handler. +******************************************************************************/ +void StatusHandler (status) +CDFstatus status; +{ +char message[CDF_ERRTEXT_LEN+1]; + +if (status < CDF_WARN) { + printf ("An error has occurred, halting...\n"); + CDFgetStatusText (status, message); + printf ("%s\n", message); + exit (1); +} +else + if (status < CDF_OK) { + printf ("Warning, function may not have completed as expected...\n"); + CDFgetStatusText (status, message); + printf ("%s\n", message); + } + else + if (status > CDF_OK) { + printf ("Function completed successfully, but be advised that...\n"); + CDFgetStatusText (status, message); + printf ("%s\n", message); + } +return; +} diff --git a/cdf38_1-dist/samples/example1.cdf b/cdf38_1-dist/samples/example1.cdf new file mode 100644 index 0000000000000000000000000000000000000000..c8b928f71d72533a74b7629b30e7f84f0468bb1d GIT binary patch literal 20616 zcmeI4dr(tX9>;&-nM6PrsPC1K(io7J5dm4-8i9moKmu0Oo!JW{kQN9gfl6yzME?j6 zJ0Z}mopIa6aj16PEz4S0U8_}jsk}sOMX4*T1>M>fv0Wdf{q4Er2I5TF+1dWJ%QzIL5?? z6naAuV-iVY;}n6y0+Xr47!wwjo2L!UH)?Z3iy0#mny)Vts!Nz$jVQgK+^EYnawC~s zU7^lYE>y|Y@-U@7FOM*OfrGfDcld*`_ciovAc$Ci7+W_5sU; zS7D>aD&-EBU553(gvW@qF2x}G3@Mq&|@Ka=rtJlNZnubtDB znqe`ipGC4O$!uczaXv4O_$+&p+?Uv_pov(v51Uxdc7LLRJ=o8YnV6XpKUq6d9Y==z z90v-M>{wn?^}-yR#FppxGP9WU>uMl$V+c z^oAG_nTTskCf4y>>`?m}d?v>e$36x7<{{E+Mfx1_YF0)bm3r>>5A13jr($JbpXw)9 zlb|m(gr(|=OHK9-)si9X`>8##Pm@X2*jM0a$z9N~_?T~-WLDf`mH$D(HcsS0touB2 zm`^fUL@%}o5j={=@Nak=Kg1Jw5x- z#dCNbyRaL3uowIA0`}uYyo8tWWBdfK-~e95YdDCX;&uEx-oPRJ3_r)4_yrE*2;Rcm z_z(ON@8DPXHGYGmco)a;9)648;Xm;{KEQ|g2*1a1`~iO?n_{CVoJa_=3yE2A19uWm zC;%aeQ}F;#@PgSe2YvzG-~+z!1k8nbB<^AXEQCcQ9PXE}1pGh*{vd`YApo8N2`mLE z1VRujgJ1}OPzZx?SPn80aS{P5Arhh>8dgCJ{0dgX)9?&D3u{0QYe|$!9K?eHl#l?4 zkOaw)0;!;aG)RYakO6AQge+JO&%p-BhK<0hpnsGAB|r&K0+awHKnYL+lmI0_2~Yx* z03|>PPy&&dN)80Rv-8t$`2&QDyvcz8bfy2PnP*A5qv|4q9tUnweNeMRoI->vRidS{@5q%|%Q zzFeRvSv$v?zEk4C2$WmJbLtY}B*Jx73RBLU`VFlTuPs%|ZQd43T!2K7n5ZyhSge`* zB%ZoNx;3Mr$wL#UEDuVr zOUi5#W*tzJKA&E{@luml=>g>{3;QgJh$ca*PGQ{GXI+1&$+JkOd^x7CPBk8%f2{9~ zV$-|sPv4H$Kk9q)c^R!MkWVv1I%eyiQ2 z4X@Ac(s~)+>ex27*%BYD6(nc38`d{lvkq!KU&!uwDYCgPwNN{2(?EM!S#$lb?`UVg zJkar~SBWKd@i1Sxs(p*9#H!vi?2*5!qdc^vE_w5?@VTSyrNt%nn+AuyUOd|I%92rw za=at=?a_w()g!K9FTm8%*x%f*@@m2h_ z-qn3O{ey@2X)a>#s?Iq7pbKV|M~-*Rl~(`IyXG_}Z>zaAz(4S8f=ZZSt-iF+Kjd~o znw!j8)s^SJY@k!+Ww6!^-t-T9*qO!?W|&X=HcH#1DnU|4b$>%+@E6iF*Px85bD51n zm-nkYpUQ`b)EM$rL7IC^f7QubDf5o?@A~@N z-!J{}R;u5lv8W$z^@5wse9D87o|)gnSIDYgd+_FkS|<4O`MoX@S=HGTCg|es9uKXo zW}u4+y|=s9X>NfX>dVg#8qU&R?-`{rQ$#))f%{wu+>znZ#OHV%Ne&?>cI9$$83a|93wCof| zF#P1`(>~kHabnpzb5g`!pB=kf#gSXg$*VuBuhYRFeb>?1K*8ZfG S@2PhnFF-#3`ftcbVEzS*^){gZ literal 0 HcmV?d00001 diff --git a/cdf38_1-dist/samples/example2.cdf b/cdf38_1-dist/samples/example2.cdf new file mode 100644 index 0000000000000000000000000000000000000000..550bbfd43fb285b24bdb35806383741ad103a770 GIT binary patch literal 8606 zcmeHMO>7%Q6kexEP24|7(?%_&EC-;G+JrVyizv6)=9g>5nVLenGsRNT zUyfy+oHKf;QYg69f-M`SO2xT(-=6f!zE_PMs(N1egje!++f#0Jx#X4$_P&P>9N23g z%Q>-K$7){HuGJS8D^>rX&3^Y_0DF`rUMkl7S}>B~n4ZtA>f>BU^FKE(i0!_^ckrdC*W+WR6hWWgHR zQ|V+Tk#(k2Ww)vfCf+Y6-}@sp(VBk9GBQdnmHGxE#TbaP9~k0N@opRH)bEfq!s6)k0P&Q#8_}`0@0ic z43=eLPr**?79`?Au~)`XBgMpi0+Ys4hho3@SRtGG6*i3}hr+S8#+sao@x9POAH?HM zpl<~%_3y`{g)`0*tm$Gg)~=uX0prFPQ9|R7I3AGICTIFTgpJsaoS6*eO#g2Nwk>BS z+H*$tOC37qiNmN7Vsd8vQ`!p6e#N|-IkS$ZZorw`q?1YB-e(NXth=n@vkGUd0@_hb z>@O%2*O4<}@ z^e^s1k~6pW8N@@KO&fS0V%!)bO6WTa`&Cifw00Y}!bWUo&ajmfgEJeC!lbcnIWu7^ zWK+Mwrm^ig^SQ>FoVkmAXN zo5Tarz>`nm_;Is;lS5n13J>xT^v^jr?1O9*aA;~eJDs2I_RlbL4F|tLd>Hr69Li1} zO**-xifbHNabQafd5v$&p>%uv5d$BrA#6gpmXt)YUH_t)?!P^UoJ=kmaMPRZ~ zFXqKQ8#PkJI(Ay4en{tAwRE!Wa;tr{vg*79&HgC`q^lUpZlsry z{=!uSzsK}^iccpS>3O7IK?Q6Ey&vJ~j{8vGNu-}JojB6Fa0Sjp;WPR@=rfM=2GT$9 z3yILb;?xd)5%3*Qa`%$V2u*Ga(Q`n7@rjt_;5Sv-v>Ts{Ne^T4NBTO?HOe`po8^|c zhw9jxT6nZ}h(1jFYI%th_vI*mFSrtX|Ct=v$$iA&z&)oVPUvVM+E&b6zpd278|4D1nBbi%f*#&16n><@Y$5Ut1ob++7lT39Th+np`qcO3S|w#I)L z654%FzAGZ>HMqt7V3o7R9?<>#S1p$$!o4Z#ybUgVaQ=dG9_c-#SCB5u&N?_zgzc@d zF;Tww?KKCdhoj4Bv}5^A=sfCl{YyrB+SvXb_+vhf_Rkm5lwURaC*B;->n&w-K4&lmR7nP;|twFeDB_IF$r;TJ%mA)9E&kECq)X&DYfO>g{;ELGDm)y z#=(~FC~~+f!#ty$1qC)&f#4aKQlxT{>?LlyD=gJzx0j5y7rCQ_44bR6$W~GyB*gXX z87~aUv4lmWVNi+PEyTnKq)yI|tgOuJTyuI_PHs+e_Rv@;5DOu(shL9~!`QrnsbvDe zPDF#hC%a8G7%I+rt_|&ACTgR>;|Yr}eq14xwS`gg--VvcF2K)-JI^9?Eh# zZ@1?I7Br0_d| z=2Nc)&1o}TV;-zfvzpj^WJg)PqqN9TVz2JI!d5PgXY+w9HlI#BA12So_mVPfXG@}UWv$A`33bLbj;v6iTP$jjGR?#j1YOKinKPozIFX7hk7Hjmc4 zKqfCWIWyOimY$SqcNVLYAoX)?jv^YX=^k8-wt2<)Y>aHveT62TJO#GSd zki~RwMr|)K-3P`c4YXGZSvD70i^7!#XgXh$MLPdV*U&XYtEs9c#zVH3<+~iEZYR*e zQ69mV&XC1)j^Nobc~Vwd5~aLSm%Y$lQs$_j{8eNtE4B$~B@_hZ#gv@X_#iBs3*~}q zw$U}_0y(wYzryY+qxhn6!B9Mb*j!Mvx%kLrbHQLu$@)(l4D}s!je+&GnyPAIpxm_F z^yKQ>!L<4kh$#tKOvy$(GbWE5+fDu~km0FYQ@62^wk5;^)W!aEJ(cEEyu{$S$$7cn zo53}-cnlpwaL8in))tRKmdjpbD=*0}6teB5P8am1+>U97uHyJW|F%@T#Pk*{r7oH^ zZJP4aR-hKiTGyvTMjIm0{&TNvh`ozg-H zymE>fauym-tQz#9nz2IYUgzaQ4KFJ}@Cn&6>eKAgpo-dz0piH7eFT-#=)_P`UOd+B z5(*GT?n)XjQ-LDeI6ic3XhFqGoFc@@LeXLyZx`$(cGr0D&~$0onA%JixL7T^h~-5S zgmFdANkWCa$eHiaMYC_iVH_Xu)3pIuFbMslXhc5^xrsw!*MwEPbP3WP1+11(8{yQ+q+;e+887+4QlF-< zI*LJ&NNZI%6GD;FLJWo`i%7@i)J7_UUnATQwq9a_Gcx5I@6F&E*#slrjWJQkVyQTs zXUF8FI9z3JLADpsF72wM=vFt@XrX6Jrj#2)nH6Zw5wA_=IASIO6)!Q4Ire-fB~LG> z_=FfsRyJ65ix#re;X6a9kcQVjMm5tAiMcZsFEM`V`b&kjlJWKep};|h2WpX1F9u-ov2~=hr zX)z5ERJ`P)<}io5P$;w)m4ev-`?zsJx|2>nc-GS%t|AFIm-B6dXdj=jo6EkJBgyWNuL_5Vj)j z*LC55n5kb|VY3-abQz0dN(voQGzO_O3Jj16nHAs&em5-j?abhE8(yslS$29trN@-g2LQR)TO@pdj zG=nyWyE0wiN`V+uWiXHi6X5y*90Np@-y>gg5xsnI;S8dkK-uD|tV|lKxg0C#gp+`m zyhimrKhgt3Sy{OYYoaaf^&e83O$En*D_mNQO$)#n8!YP;vOzW^yR^vU*x+R3Hyiek z5>nDFsRH$#6OR!;lh(yR0S$iAF<*^Bjj3)CLzX zF&(tmv;LK6iL}a;xPjV!m8hNu_pqe7yDE=yK=Ar?cbOe?1eF&J)3(j_Q7Qw^`!%?` zdffKhYk8V#EckVpi)6`_lXEcjpvgr@vRkXsR6`avA8Z9!5ic>jX<18qQdO70^9({K z7xld6C=uL+>?u@m;XEhAck9+KxnIw?xH!Q+lvq|!fy8}OGl|$Xko~;GBqHI{xrlqV z4N__qu_mdlbE#%hvCU*r@e-4&zR>l&AAkZr&%{B>FCrn3znN+#AG;KucD%&o$Hm6= zq0_6az&^3u=C%uTc(n=C#IDshK2Gg+l=$tAC1!Z`BUv}TNi~yIpW3^qc*!e^B$YUY z@wAya=%8HSAc2%L=%ovVD4oCEg^n@-r)XC}-*_5}fu7ESayte%yzl#jVrPN9Z-T!; z#g4Kv%0@y?T6Wry9Cbo{6a5V=aXQK>eTF5FEiMtt_+>asNX-*9E__!Y_$VsiK8b3^9r-_+ikEoqHJsOn zdpyUSz~iWZ_oq}d-gIr~LB&gq_oXirRLA6_Pzyg!h(K({Qz5QxWU84I?Cw3Oc!^12 zo4V(>)%h2Y()MjFk68$a%+wwiJFy zjynSsRu;INv~?5D+o_NZ+aUuoS=gxXBE(C~5dxA`;CptVXJk6N5Gy8W6SbKn>|w!6 zsyQnrX(Dk&$bgt6oM~_-_REIHNl4{_AC>~Ne3LD)Ls9Nd=O{zc^H{(bI9JW7T zu=#q4;pqL@cDi{%>*z)`usBKsi*pg?>Q`pJjt7xZ80HRYGYn+;#fXq*FlckTc`daW z26{r4mza**RvQc`L`>F~)MhwruYP3#K%`*=>=eL24z|faFj#LU2fK@3jISMp85{pL)D@5MHM?lLN>0Yln9zHK7o(IsHIwhQnIaCQHL~=*VG^s{LYad7#~$)WLFNW@e7-l}TnQo|S!^BfR&AY=J8U|yL5OpyO@Er$e8UP@?JqJK?x|{?W;+X~p zBFE?g+|)_FbxRr5Agm$gz~zW=g)VF42umKu1W8&Ph5tc#$f`X@>@qyO7OUdfXvp3j zaT);bayjB8&AT{cz<+_&*0KEU+T%@LX`hDqfxu%ln6@7d*@Rh%5;e=CVd>JZn zIpUTt>C&4cawJQ7@;`Ep=z`n;S*SsN?RM!oqRU7c3mjqsn0i#a#P(?a=ZG!~Xdtk) z<_O>Yvx~xEAj`j=KIe!o$bU?ZZjQM091&sUaJo5y#(=cgh`>5R*5z^pkHLB~{d9AL zuN@+Gav0ql;d_pVguR#?-5hc0IU*AK0K@6#2u+q|he+gqhSALtQTM*_K8<6TCpnC6 zj-W9hhS^JPCPz0%s0eS!cg5NO1K(kxuMP3U8vGVFv>eg3JGB{r)wKff6we0g<_K`m zB&f_7KsQHVl$#3aAN#rr@#F|d;BrJ1>|G;A{1fMhD2ez&R_!_Bl5<4VT^bH{uPsNM zr0yE$h^Vz1w$>csyMIO@M?%jlI7dWdP7DJ*13X7W=WsaP9O1jKMbFkSkQ3lJA{y(> z^wZ4|zIKTIfy3zL2;Xx=OcxHLnEMk8H9P4#_5xMNs>Un7XuMc3cXz84{t3u<{Z^s-G{@2gB5%%`WZ^YBL;^ z)R|pjDQ2hHGHx9Qf*?}8nwYSD$yP^Fgf9@!y-XVBrU$e$pf34eUMJ@Gf z2939JI7FpigVJ{bs}0JKk8()Fre7p|+pQXzK%;0v@jE#r7SwOXR=-T9<&OA^90I~cyDG_||GB0r$x~D0o_A&@+zl!l+8tVaf24N&NZZ1$0KBh}> zQ3G|zptRh-6Q#sQ(=ri;hAbASezjD;bcBx{$P|fY4uR3|e=jjp81sv}b_Gu+$3<-> z2gdU&NBvBY$$5@Luq~2qd5FoGP;4x-BiY4Mfp&+eW^xc+NUL6AD1q*1fNs12ba!C@ zG`+f+sm&xHh69>^H-7#Ir_0X28$W-VnSVLn`6ti_8rAI+s+o3}n!X$@d3J|aF$99$ zZ}QBtmC<*y%BWkjTX&Iz>F&S+2LPDK(cOM|z|$N+_k7L+_HzK;y_W;@z|t|5*p^DS zJmkk&)D8xK-E_T6+k1QepfSTTT#q)mdhYdjfoe!qLpmihJHwLe=?U_$mfw1OMtI0d zqyo8q^V_&yvFO(@Ju#kP5T5=qJ!9iIOe%-Lc)yqw4@TQrdfvrh5T1T_mXz+X3HZV$ z^(Rmvx9<5e)l5IEnqRk0gKx4Ko#GI1Y5&^!SfSUA90r>C$M{&GR|bbcnEJ=`;4Rl{ zI)_1!`p0NoAgXC?QJh0Qd3_k#a1yCF(1XKxMHy9w%lk@HLl)E3uLt9+Dl~>+CUF?pFAxlJB$I>r1%g5TV;J3B z=Bryj_!GlGMgVg9A^$N9a#r&15w&*aMgxWU>HkaO+wQgFF@p=1UHP92Nj3sSSrg{t5(>$zc$0fna8E804@( zFxUZ@-H^pBWWFa;J#aTHVa#^6bB^(ZN1H{qD zYCT&9fYWkj$^aGV$?w2%In#{XhFDN@rkp0_S_dX$UkjGNkK)NZi)zSXITLpE5^^?3 z{U_!5^tGq5q_Xm{YJc>_MGm9voXl*1exyFd^u$~YF-6oO#!D#rqQL=Y@~<5*zJxN;WB_@)@M z1$K}iSYX3vEC3IJ#a505_LVDVk%An-w7?c~1uSr4Mp%Iu3)EoaB~Sj=GI$03OBkms zDc|OzFJU@tB{WLgdIsRzuplH~Y%|=}lkyf_!pNRi0%_^#^c6u236`|&JmnW+pl)dz zBkUbsVv4_Oz3+!P4b~tLbfZEOPVGuHa7fX>_{CLG2NA z9WV@blt3`=au}u`-SQBdQw=%4Q!kSPe+WQM|5yzJ8Q3KJVydWvNSjapvD9XAuq*h* z`0CbwF^9o65C~=mhk=6zg87TXAkhbaQ6JdZe301#!HnbNAe9G#d5ps#ch`o&%O09@ z+D;9Fu}Ic_F;&#T0Qep&CWC=U&6fiVh~WT8#FqomkZK7?ySe~3b&_8VoB{+9;su8i zE+-85h%ONm4dK)Hh|Zdon{CBpf}=hJBfAa6nm|?}6(|T_@DhukBK!+2tDF9L5_R>Y z0whkO42h_KhkMBvSwZ(Tm^y;N;H;N{X|_r4qOpc;@PdxB&A{*J61vxcRD3D|+h9zP z)SGZn4Fp-tHte3-!Dd)a|MrZThADeM9pPEXo6yE!&%JcKQ}QZ{_q~5p*}lY&DF#_g zSp=w;n6mWm+vr!wYN(sFTN?-4;?b8=H)8-@!gs#yYYv163IsH$JqLnw2L#IDKmY^;n!|yxu>=Id%THzq z1W-VrA2|@VmOwz6h&v_;ZWa(|6bC{=2?+Ec2ZHkk1j6>u)I%x@2=oUB!u}EnC<{){ zBw>RI2xR9#*kl3%J;s5s(F6jbVb$s(UTXzuc}fN04`Qh;8r6AfFw(ns!_fji`0d8~ zJ%+(J@Ie*}e3rZDmPbBx;FGGBjR&u%eg;HH`UUbwZ9a`NAV8M|-a~^ZKyr>#eKQrB zcJ@3^skST2QPhugPL%DUKM^cvskegvgDnzKfF%HFG7N>(Mw$R2^09QF2&NBT(|yEm zJb#b1Nnc6`6Nj;Dz9!5MR1h1W&z9YI&tKmja-Cbe*>rL3iJ5bE9uBWpylh>A(z>p1 zpc{L6+F^+z=>+pwZv z<1-hid2jKN6^8odB{?%hluhiUX%8AFXdE=Uq1gTSj+aC@Y zIj^j$)d0Hv)-{*pfOu z+Vb*suc0k$>rCqHFgY{gOy_$N8?J93vS!xtxaFG{ zH#^-qcXIO+H*Z@=knrXm4>+11zwUTz>S?ezgGR}xpF7j}?no!0uN%@nWPRy0T*u7# z8aJl4|E6EVf-yf2J~l99eCWIdb@Mvr^?i79^DS+*8~}$en#?2?sbd$^&FbHzbDO#S zQ&0BXSJJ^EJauI7hI{UoghPWjJX|-~aA0t=&eJ|kEL&}LrXC^s*=cDXreoWWeaW~X`Pjdz$=zSz!e9o^nM(HLTW zC~BU0am&``Mb}R^-?O@_+4}qp^WrJ7X2&yxRfd^oSDiJ_oq59ifPBJSeCK@g?3^a% z_$CLm)8GFc3a2E71n5Z{1>6}-De+? zE6S~M(Mh8`<(2p4$-A1$cbxu6p4H*BJiWvK5*sm>&4oXeEX9=p~^=)vc#BM6lLGN*NXDs#mb?1Mltc`rOLh$uZn#- z-mmOw^19fq{e8;5y>E)Qe*TuSx7%K^gEB+eHTn}#{+r?O z?sKig(T#U1`_GRRvtC%O>|Zoblp0%^ri zN}~PYwYKtBVr^34imYYbN(jxjM!!No zazRDcT6A6?jfcC4{#pN~Gl7*}E4dCa3-LA0McrdeYtwHwy_bC6v?k|e)5|a4X!`O$ z8%(?JIA?kxTrz#IZi49(bCT)6nvJGcrpz#X)4Gr8%@vC2>BWzj4n5P#w5t7d)9#;k znf}~<+VpRk9gMWUvnlHv%_F0Q{NNwYlSw=MO`mxk$tzc^u#ri((X@b z%YWXGmfcWKdj8pWr5DcrA}xPxjI{jaI?{@s%cWN~8Kg(@r%D^^_LEk<(q7ts4;f&tRXEf=M=@m-{sgej78rd*me;A3g#b>B&k#GI2JANiRy zXWj==R_k-pL*G_OCFk7I6A$c=?%VW=wC(90()@lKr03_Zla?L)Ra&?{RC-z-NP22# zf_$0_Td%R?hbX%1MGy94>ry|~>tA>#7<)IZTko1{=2?+NjR zql1(;hrPJ9b@GV*bWZ%O zFj}hnV5NBQzeVDqlqHg3T3>P7kO|^XFGh(!X1c^5N5qRKqu!JnMW2;IUOy)8ZTp2( zKLpQf+Io%eTD@N5Ci-hVKnIP5`2evT!mA~IK=;!+Sbc>z4*Sd>pSa= zw{|>bytPw?F{ACbM$3#xj2*UpVeI|&4@PFE7W zJgHoTgmC*qWGcOvJNWJbbFk2=HFRYdLq)UAg!ibe*=7Pgm7(a`hCZ2^V5I(t{>j#? zziXW;VssU3GhsE^rn`+RGPsT~rF^;d}sBZ(tkXo8;it&)3*`~P4U_jBe&2`jI;cSS={PzS^ zG38A6@GG;;3YsG&oDzD;qJC~km3xAxct4C&KRX3m>cr>7&1w9zRM+wO@(kSwg0LRy zr$hAP;_RC^_@{9^(GWe)(w?Q9<7f;%b|orr=P7>G51|2+E1iR=uET#63uF*ftv)d$ zyq=!e{m9IvbRO{P`6%g0#jlLXjK#I&42T2k?=CAhYv&wfl)*U9I;u&Q#n z@;}vD5>`*iH0on{y0`iv^XK{akom8lX8zyK$-gAjD}FY5OCOI4&x)BS)e?Iy8Vrlc85li-rzIFDZhZ;qN;QJ9sjG^Y~ z7mk_>!ffVJ*GhBMhCb#&cdj%if79LEYUCz!vlge!nKv#qho->T>UeotT5EZRvR9tl zXOBE%)vfaUjS2Fc>sredD?gCu&;C=MmAOE68!0!a|C^Ce<>Q~e6yuG#%BSU}Vw+Km zmCq&@h>7p7QI2e!YuVX$v2whRL7Z9ehjR4DIx+8XxpH9pezEjISLNu&!=gLtg7V4H zWO2sGSLx;X6JpX7KJJ+;&`KP7@1&OAGIb%$t z!;?)f^*dx*QuHyKrL=T)skGv?&CA)`uS$*EJR|<{VLR!Xd9%e&q+g_v z0l%{G#x|YC8ij}ljcvZS8rwd+)7a`^tFcAQA!CF0tg+`ZelgzI?S5mEBM1>>aORnf z=#@F0-`gyFylxfU*0ChkG_;PF=t{jqbu|TYr;vu%*C3%(Bapm%OU-So_CELCn&a6u z;RaA)GwieK-sMeBJuoWH&`@4gnLjPDInternational " - + "Solar-Terrestrial Physics" } . + + "Discipline" 1: CDF_CHAR { "Space " - + "Physics>Magnetospheric " - + "Science" } . + + "Source_name" 1: CDF_CHAR { "GEOTAIL>Geomagnetic Tail" } . + + "Data_type" 1: CDF_CHAR { "K0>Key Parameter" } . + + "Descriptor" 1: CDF_CHAR { "CPI>Comprehensive Plasma " - + "Instrumentation" } . + + "Data_version" 1: CDF_CHAR { "1" } . + + "TITLE" 1: CDF_CHAR { "Geotail CPI" } . + + "TEXT" 1: CDF_CHAR { "GEOTAIL Prelaunch Report" } + 2: CDF_CHAR { " April 1992, SES-TD-92-007SY" } + 3: CDF_CHAR { " CPI-SW Solar Wind Analyzer" } + 4: CDF_CHAR { " Key Parameters" } + 5: CDF_CHAR { " Ion number density" } + 6: CDF_CHAR { " Average energy" } + 7: CDF_CHAR { " Bulk flow velocity" } + 8: CDF_CHAR { " CPI-HP Hot Plasma Analyzer" } + 9: CDF_CHAR { " Key Parameters" } + 10: CDF_CHAR { " Ion number density" } + 11: CDF_CHAR { " Average energy" } + 12: CDF_CHAR { " Bulk flow velocity" } + 13: CDF_CHAR { " CPI-IC Ion Composition " - + "Analyzer" } + 14: CDF_CHAR { " Key Parameters" } + 15: CDF_CHAR { " Principal Species" } + 16: CDF_CHAR { " H+" } + 17: CDF_CHAR { " He++" } + 18: CDF_CHAR { " He+" } + 19: CDF_CHAR { " O+" } . + + "MODS" 1: CDF_CHAR { "First Delivery version, " - + "7-OCT-1993" } + 2: CDF_CHAR { "Second version, " - + "12-APR-1994, RLD" } + 3: CDF_CHAR { " Changed dimensions to" - + " 3 and 2 at" } + 4: CDF_CHAR { " recommendation of " - + "Mona Kessel" } + 5: CDF_CHAR { " With help of Jeff " - + "Love (CDFSUPPORT)" } + 6: CDF_CHAR { " have cleaned up dim " - + "problems" } . + + "ADID_ref" 1: CDF_CHAR { "NSSD0091" } . + + "Logical_file_id" 1: CDF_CHAR { "GE_K0_CPI_19940726_V01" } . + + +#VARIABLEattributes + + "FIELDNAM" + "CATDESC" + "VALIDMIN" + "VALIDMAX" + "SCALEMIN" + "SCALEMAX" + "LABLAXIS" + "UNITS" + "FORMAT" + "MONOTON" + "VAR_TYPE" + "DICT_KEY" + "FILLVAL" + "LABL_PTR_1" + "UNIT_PTR" + "FORM_PTR" + "DEPEND_0" + "DEPEND_1" + + +#variables + +! No rVariables. + + +#zVariables + +! Variable Data Number Record Dimension +! Name Type Elements Dims Sizes Variance Variances +! -------- ---- -------- ---- ----- -------- --------- + + "Epoch" CDF_EPOCH 1 0 T + + ! Attribute Data + ! Name Type Value + ! -------- ---- ----- + + "FIELDNAM" CDF_CHAR { "Time Line" } + "VALIDMIN" CDF_EPOCH { 08-Sep-1992 00:00:00.000 } + "VALIDMAX" CDF_EPOCH { 31-Dec-2020 20:00:00.000 } + "SCALEMIN" CDF_EPOCH { 08-Sep-1992 00:00:00.000 } + "SCALEMAX" CDF_EPOCH { 31-Dec-2020 20:00:00.000 } + "LABLAXIS" CDF_CHAR { "CDF Epoch" } + "UNITS" CDF_CHAR { "ms" } + "MONOTON" CDF_CHAR { "INCREASE" } + "VAR_TYPE" CDF_CHAR { "data" } + "DICT_KEY" CDF_CHAR { "ISTP>class>subclass" } + "FILLVAL" CDF_REAL8 { -1.0e+31 } . + + ! RV values were not requested. + + +! Variable Data Number Record Dimension +! Name Type Elements Dims Sizes Variance Variances +! -------- ---- -------- ---- ----- -------- --------- + + "Time_PB5" CDF_INT4 1 1 3 T T + + ! Attribute Data + ! Name Type Value + ! -------- ---- ----- + + "FIELDNAM" CDF_CHAR { "Time Line" } + "VALIDMIN" CDF_INT4 { 1992, 252, 0 } + "VALIDMAX" CDF_INT4 { 2020, 365, 72000000 } + "SCALEMIN" CDF_INT4 { 1992, 252, 0 } + "SCALEMAX" CDF_INT4 { 2020, 365, 72000000 } + "VAR_TYPE" CDF_CHAR { "data" } + "DICT_KEY" CDF_CHAR { "ISTP>class>subclass" } + "FILLVAL" CDF_INT4 { -2147483648 } + "LABL_PTR_1" + CDF_CHAR { "label_time" } + "UNIT_PTR" CDF_CHAR { "unit_time" } + "FORM_PTR" CDF_CHAR { "format_time" } + "DEPEND_0" CDF_CHAR { "Epoch" } + "DEPEND_1" CDF_CHAR { "unit_time" } . + + ! RV values were not requested. + + +! Variable Data Number Record Dimension +! Name Type Elements Dims Sizes Variance Variances +! -------- ---- -------- ---- ----- -------- --------- + + "SW_P_Den" CDF_REAL4 1 0 T + + ! Attribute Data + ! Name Type Value + ! -------- ---- ----- + + "FIELDNAM" CDF_CHAR { "Ion Number Density, SW" } + "CATDESC" CDF_CHAR { "Number density for positive ions in " - + "the energy range 144class>subclass" } + "FILLVAL" CDF_REAL4 { -1.0e+31 } + "DEPEND_0" CDF_CHAR { "Epoch" } . + + ! RV values were not requested. + + +! Variable Data Number Record Dimension +! Name Type Elements Dims Sizes Variance Variances +! -------- ---- -------- ---- ----- -------- --------- + + "SW_P_AVGE" CDF_REAL4 1 0 T + + ! Attribute Data + ! Name Type Value + ! -------- ---- ----- + + "FIELDNAM" CDF_CHAR { "Ion Average Energy, SW" } + "CATDESC" CDF_CHAR { "Ion average energy for positive ions " - + "in the energy range 144(sw)" } + "UNITS" CDF_CHAR { "eV" } + "FORMAT" CDF_CHAR { "f7.0" } + "VAR_TYPE" CDF_CHAR { "data" } + "DICT_KEY" CDF_CHAR { "ISTP>class>subclass" } + "FILLVAL" CDF_REAL4 { -1.0e+31 } + "DEPEND_0" CDF_CHAR { "Epoch" } . + + ! RV values were not requested. + + +! Variable Data Number Record Dimension +! Name Type Elements Dims Sizes Variance Variances +! -------- ---- -------- ---- ----- -------- --------- + + "SW_V" CDF_REAL4 1 1 2 T T + + ! Attribute Data + ! Name Type Value + ! -------- ---- ----- + + "FIELDNAM" CDF_CHAR { "Ion bulk Flow, SW" } + "CATDESC" CDF_CHAR { "Solar Wind Ion flow velocity for " - + "positive ions in the energy range " - + "144class>subclass" } + "FILLVAL" CDF_REAL4 { -1.0e+31 } + "LABL_PTR_1" + CDF_CHAR { "label_v" } + "DEPEND_0" CDF_CHAR { "Epoch" } + "DEPEND_1" CDF_CHAR { "cartesian" } . + + ! RV values were not requested. + + +! Variable Data Number Record Dimension +! Name Type Elements Dims Sizes Variance Variances +! -------- ---- -------- ---- ----- -------- --------- + + "Quality_SW" CDF_REAL4 1 0 T + + ! Attribute Data + ! Name Type Value + ! -------- ---- ----- + + "FIELDNAM" CDF_CHAR { "Data Quality Percentage" } + "CATDESC" CDF_CHAR { "0.0: adequate data quality;100.0: " - + "inadequate data quality." } + "VALIDMIN" CDF_REAL4 { 0.0 } + "VALIDMAX" CDF_REAL4 { 100.0 } + "SCALEMIN" CDF_REAL4 { 0.0 } + "SCALEMAX" CDF_REAL4 { 100.0 } + "LABLAXIS" CDF_CHAR { "SW Quality" } + "UNITS" CDF_CHAR { " " } + "FORMAT" CDF_CHAR { "F5.2 " } + "VAR_TYPE" CDF_CHAR { "data" } + "DICT_KEY" CDF_CHAR { "ISTP>class>subclass" } + "FILLVAL" CDF_REAL4 { -1.0e+31 } + "DEPEND_0" CDF_CHAR { "Epoch" } . + + ! RV values were not requested. + + +! Variable Data Number Record Dimension +! Name Type Elements Dims Sizes Variance Variances +! -------- ---- -------- ---- ----- -------- --------- + + "GAP_FLAG" CDF_INT4 1 0 T + + ! Attribute Data + ! Name Type Value + ! -------- ---- ----- + + "FIELDNAM" CDF_CHAR { "Post Gap Flag" } + "CATDESC" CDF_CHAR { "0: no gap immediately prior to this " - + "record;1: gap prior due to instrument" - + " mode;2: gap prior due to missing " - + "SIRIUS data;3: gap prior due to noisy" - + " SIRIUS data;20: gap prior due to " - + "missing Minor Frame(s)." } + "VALIDMIN" CDF_INT4 { 0 } + "VALIDMAX" CDF_INT4 { 5 } + "SCALEMIN" CDF_INT4 { 0 } + "SCALEMAX" CDF_INT4 { 5 } + "LABLAXIS" CDF_CHAR { "Data Gap" } + "UNITS" CDF_CHAR { " " } + "FORMAT" CDF_CHAR { "I1" } + "VAR_TYPE" CDF_CHAR { "data" } + "DICT_KEY" CDF_CHAR { "ISTP>class>subclass" } + "FILLVAL" CDF_INT4 { -2147483648 } + "DEPEND_0" CDF_CHAR { "Epoch" } . + + ! RV values were not requested. + + +! Variable Data Number Record Dimension +! Name Type Elements Dims Sizes Variance Variances +! -------- ---- -------- ---- ----- -------- --------- + + "HP_P_Den" CDF_REAL4 1 0 T + + ! Attribute Data + ! Name Type Value + ! -------- ---- ----- + + "FIELDNAM" CDF_CHAR { "Ion Number Density, HP" } + "CATDESC" CDF_CHAR { "Ion number density in the range " - + "50class>subclass" } + "FILLVAL" CDF_REAL4 { -1.0e+31 } + "DEPEND_0" CDF_CHAR { "Epoch" } . + + ! RV values were not requested. + + +! Variable Data Number Record Dimension +! Name Type Elements Dims Sizes Variance Variances +! -------- ---- -------- ---- ----- -------- --------- + + "HP_P_AVGE" CDF_REAL4 1 0 T + + ! Attribute Data + ! Name Type Value + ! -------- ---- ----- + + "FIELDNAM" CDF_CHAR { "Ion Average Energy, HP" } + "CATDESC" CDF_CHAR { "Ion average energy in the range " - + "1(hp)" } + "UNITS" CDF_CHAR { "eV" } + "FORMAT" CDF_CHAR { "F7.0" } + "VAR_TYPE" CDF_CHAR { "data" } + "DICT_KEY" CDF_CHAR { "ISTP>class>subclass" } + "FILLVAL" CDF_REAL4 { -1.0e+31 } + "DEPEND_0" CDF_CHAR { "Epoch" } . + + ! RV values were not requested. + + +! Variable Data Number Record Dimension +! Name Type Elements Dims Sizes Variance Variances +! -------- ---- -------- ---- ----- -------- --------- + + "HP_V" CDF_REAL4 1 1 2 T T + + ! Attribute Data + ! Name Type Value + ! -------- ---- ----- + + "FIELDNAM" CDF_CHAR { "Ion bulk Flow, HP" } + "CATDESC" CDF_CHAR { "Bulk flow velocity for ions in the " - + "range 1class>subclass" } + "FILLVAL" CDF_REAL4 { -1.0e+31 } + "LABL_PTR_1" + CDF_CHAR { "label_v" } + "DEPEND_0" CDF_CHAR { "Epoch" } + "DEPEND_1" CDF_CHAR { "cartesian" } . + + ! RV values were not requested. + + +! Variable Data Number Record Dimension +! Name Type Elements Dims Sizes Variance Variances +! -------- ---- -------- ---- ----- -------- --------- + + "HP_E_AVGE" CDF_REAL4 1 0 T + + ! Attribute Data + ! Name Type Value + ! -------- ---- ----- + + "FIELDNAM" CDF_CHAR { "Electron Average Energy, HP" } + "CATDESC" CDF_CHAR { "Average energy for electrons in the " - + "range 50(hp)" } + "UNITS" CDF_CHAR { "eV" } + "FORMAT" CDF_CHAR { "F7.0" } + "VAR_TYPE" CDF_CHAR { "data" } + "DICT_KEY" CDF_CHAR { "ISTP>class>subclass" } + "FILLVAL" CDF_REAL4 { -1.0e+31 } + "DEPEND_0" CDF_CHAR { "Epoch" } . + + ! RV values were not requested. + + +! Variable Data Number Record Dimension +! Name Type Elements Dims Sizes Variance Variances +! -------- ---- -------- ---- ----- -------- --------- + + "W" CDF_REAL4 1 0 T + + ! Attribute Data + ! Name Type Value + ! -------- ---- ----- + + "FIELDNAM" CDF_CHAR { "Plasma Pressure" } + "CATDESC" CDF_CHAR { "Pressure for plasma in the range " - + "50class>subclass" } + "FILLVAL" CDF_REAL4 { -1.0e+31 } + "DEPEND_0" CDF_CHAR { "Epoch" } . + + ! RV values were not requested. + + +! Variable Data Number Record Dimension +! Name Type Elements Dims Sizes Variance Variances +! -------- ---- -------- ---- ----- -------- --------- + + "Quality_HP" CDF_REAL4 1 0 T + + ! Attribute Data + ! Name Type Value + ! -------- ---- ----- + + "FIELDNAM" CDF_CHAR { "Data Quality Percentage" } + "CATDESC" CDF_CHAR { "0.0: adequate data quality;100.0: " - + "inadequate data quality." } + "VALIDMIN" CDF_REAL4 { 0.0 } + "VALIDMAX" CDF_REAL4 { 100.0 } + "SCALEMIN" CDF_REAL4 { 0.0 } + "SCALEMAX" CDF_REAL4 { 100.0 } + "LABLAXIS" CDF_CHAR { "HP Quality" } + "UNITS" CDF_CHAR { " " } + "FORMAT" CDF_CHAR { "F5.2 " } + "VAR_TYPE" CDF_CHAR { "data" } + "DICT_KEY" CDF_CHAR { "ISTP>class>subclass" } + "FILLVAL" CDF_REAL4 { -1.0e+31 } + "DEPEND_0" CDF_CHAR { "Epoch" } . + + ! RV values were not requested. + + +! Variable Data Number Record Dimension +! Name Type Elements Dims Sizes Variance Variances +! -------- ---- -------- ---- ----- -------- --------- + + "Quality_IC" CDF_REAL4 1 0 T + + ! Attribute Data + ! Name Type Value + ! -------- ---- ----- + + "FIELDNAM" CDF_CHAR { "Data Quality Percentage" } + "CATDESC" CDF_CHAR { "0.0: adequate data quality;100.0: " - + "inadequate data quality." } + "VALIDMIN" CDF_REAL4 { 0.0 } + "VALIDMAX" CDF_REAL4 { 100.0 } + "SCALEMIN" CDF_REAL4 { 0.0 } + "SCALEMAX" CDF_REAL4 { 100.0 } + "LABLAXIS" CDF_CHAR { "IC Quality" } + "UNITS" CDF_CHAR { " " } + "FORMAT" CDF_CHAR { "F5.2 " } + "VAR_TYPE" CDF_CHAR { "data" } + "DICT_KEY" CDF_CHAR { "ISTP>class>subclass" } + "FILLVAL" CDF_REAL4 { -1.0e+31 } + "DEPEND_0" CDF_CHAR { "Epoch" } . + + ! RV values were not requested. + + +! Variable Data Number Record Dimension +! Name Type Elements Dims Sizes Variance Variances +! -------- ---- -------- ---- ----- -------- --------- + + "H_P_FLAG" CDF_INT1 1 0 T + + ! Attribute Data + ! Name Type Value + ! -------- ---- ----- + + "FIELDNAM" CDF_CHAR { "H+ FLAG " } + "CATDESC" CDF_CHAR { "Non-zero value indicates presence of " - + "singly ionized hydrogen" } + "VALIDMIN" CDF_INT1 { 0 } + "VALIDMAX" CDF_INT1 { 99 } + "SCALEMIN" CDF_INT1 { 0 } + "SCALEMAX" CDF_INT1 { 99 } + "LABLAXIS" CDF_CHAR { "H+" } + "UNITS" CDF_CHAR { " " } + "FORMAT" CDF_CHAR { "I2" } + "VAR_TYPE" CDF_CHAR { "data" } + "DICT_KEY" CDF_CHAR { "ISTP>class>subclass" } + "FILLVAL" CDF_INT1 { -128 } + "DEPEND_0" CDF_CHAR { "Epoch" } . + + ! RV values were not requested. + + +! Variable Data Number Record Dimension +! Name Type Elements Dims Sizes Variance Variances +! -------- ---- -------- ---- ----- -------- --------- + + "HE_PP_FLAG" CDF_INT1 1 0 T + + ! Attribute Data + ! Name Type Value + ! -------- ---- ----- + + "FIELDNAM" CDF_CHAR { "Doubly ionized Helium, He++ " } + "CATDESC" CDF_CHAR { "Non-zero value indicates presence of " - + "doubly ionized helium" } + "VALIDMIN" CDF_INT1 { 0 } + "VALIDMAX" CDF_INT1 { 99 } + "SCALEMIN" CDF_INT1 { 0 } + "SCALEMAX" CDF_INT1 { 99 } + "LABLAXIS" CDF_CHAR { "He++" } + "UNITS" CDF_CHAR { " " } + "FORMAT" CDF_CHAR { "I2" } + "VAR_TYPE" CDF_CHAR { "data" } + "DICT_KEY" CDF_CHAR { "ISTP>class>subclass" } + "FILLVAL" CDF_INT1 { -128 } + "DEPEND_0" CDF_CHAR { "Epoch" } . + + ! RV values were not requested. + + +! Variable Data Number Record Dimension +! Name Type Elements Dims Sizes Variance Variances +! -------- ---- -------- ---- ----- -------- --------- + + "HE_P_FLAG" CDF_INT1 1 0 T + + ! Attribute Data + ! Name Type Value + ! -------- ---- ----- + + "FIELDNAM" CDF_CHAR { "Singly ionized Helium, He+ " } + "CATDESC" CDF_CHAR { "Non-zero value indicates presence of " - + "singly ionized helium" } + "VALIDMIN" CDF_INT1 { 0 } + "VALIDMAX" CDF_INT1 { 99 } + "SCALEMIN" CDF_INT1 { 0 } + "SCALEMAX" CDF_INT1 { 99 } + "LABLAXIS" CDF_CHAR { "He+" } + "UNITS" CDF_CHAR { " " } + "FORMAT" CDF_CHAR { "I2" } + "VAR_TYPE" CDF_CHAR { "data" } + "DICT_KEY" CDF_CHAR { "ISTP>class>subclass" } + "FILLVAL" CDF_INT1 { -128 } + "DEPEND_0" CDF_CHAR { "Epoch" } . + + ! RV values were not requested. + + +! Variable Data Number Record Dimension +! Name Type Elements Dims Sizes Variance Variances +! -------- ---- -------- ---- ----- -------- --------- + + "O_P_FLAG" CDF_INT1 1 0 T + + ! Attribute Data + ! Name Type Value + ! -------- ---- ----- + + "FIELDNAM" CDF_CHAR { "Singly ionized Oxygen, O+ " } + "CATDESC" CDF_CHAR { "Non-zero value indicates presence of " - + "singly ionized atomic oxygen" } + "VALIDMIN" CDF_INT1 { 0 } + "VALIDMAX" CDF_INT1 { 99 } + "SCALEMIN" CDF_INT1 { 0 } + "SCALEMAX" CDF_INT1 { 99 } + "LABLAXIS" CDF_CHAR { "O+" } + "UNITS" CDF_CHAR { " " } + "FORMAT" CDF_CHAR { "I2" } + "VAR_TYPE" CDF_CHAR { "data" } + "DICT_KEY" CDF_CHAR { "ISTP>class>subclass" } + "FILLVAL" CDF_INT1 { -128 } + "DEPEND_0" CDF_CHAR { "Epoch" } . + + ! RV values were not requested. + + +! Variable Data Number Record Dimension +! Name Type Elements Dims Sizes Variance Variances +! -------- ---- -------- ---- ----- -------- --------- + + "label_time" CDF_CHAR 27 1 3 F T + + ! Attribute Data + ! Name Type Value + ! -------- ---- ----- + + "FIELDNAM" CDF_CHAR { "Label for Time_PB5" } + "VAR_TYPE" CDF_CHAR { "metadata" } + "DICT_KEY" CDF_CHAR { "ISTP>class>subclass" } . + + ! NRV values follow... + + [1] = { "Year " } + [2] = { "Day of Year (Jan 1 = Day 1)" } + [3] = { "Elapsed millisecond of day " } + + +! Variable Data Number Record Dimension +! Name Type Elements Dims Sizes Variance Variances +! -------- ---- -------- ---- ----- -------- --------- + + "unit_time" CDF_CHAR 4 1 3 F T + + ! Attribute Data + ! Name Type Value + ! -------- ---- ----- + + "FIELDNAM" CDF_CHAR { "Units for Time_PB5" } + "VAR_TYPE" CDF_CHAR { "metadata" } + "DICT_KEY" CDF_CHAR { "ISTP>class>subclass" } . + + ! NRV values follow... + + [1] = { "year" } + [2] = { "day " } + [3] = { "msec" } + + +! Variable Data Number Record Dimension +! Name Type Elements Dims Sizes Variance Variances +! -------- ---- -------- ---- ----- -------- --------- + + "format_time" CDF_CHAR 2 1 3 F T + + ! Attribute Data + ! Name Type Value + ! -------- ---- ----- + + "FIELDNAM" CDF_CHAR { "Format for Time_PB5" } + "VAR_TYPE" CDF_CHAR { "metadata" } + "DICT_KEY" CDF_CHAR { "ISTP>class>subclass" } . + + ! NRV values follow... + + [1] = { "I4" } + [2] = { "I3" } + [3] = { "I8" } + + +! Variable Data Number Record Dimension +! Name Type Elements Dims Sizes Variance Variances +! -------- ---- -------- ---- ----- -------- --------- + + "label_v" CDF_CHAR 2 1 2 F T + + ! Attribute Data + ! Name Type Value + ! -------- ---- ----- + + "FIELDNAM" CDF_CHAR { "Label for velocity" } + "VAR_TYPE" CDF_CHAR { "metadata" } + "DICT_KEY" CDF_CHAR { "ISTP>class>subclass" } . + + ! NRV values follow... + + [1] = { "Vx" } + [2] = { "Vy" } + + +! Variable Data Number Record Dimension +! Name Type Elements Dims Sizes Variance Variances +! -------- ---- -------- ---- ----- -------- --------- + + "cartesian" CDF_CHAR 1 1 2 F T + + ! Attribute Data + ! Name Type Value + ! -------- ---- ----- + + "FIELDNAM" CDF_CHAR { "Dimension Label" } + "VAR_TYPE" CDF_CHAR { "metadata" } + "DICT_KEY" CDF_CHAR { "ISTP>vector>cartesian" } . + + ! NRV values follow... + + [1] = { "x" } + [2] = { "y" } + + +#end diff --git a/cdf38_1-dist/samples/geocpi1.cdf b/cdf38_1-dist/samples/geocpi1.cdf new file mode 100644 index 0000000000000000000000000000000000000000..b3c016a41b96434bf568d7b6fdcd791ff200ea8e GIT binary patch literal 44688 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 literal 0 HcmV?d00001 diff --git a/cdf38_1-dist/samples/geocpi2.cdf b/cdf38_1-dist/samples/geocpi2.cdf new file mode 100644 index 0000000000000000000000000000000000000000..df990cdfac6d6a5cf4f69cceac054f871104636b GIT binary patch literal 44693 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 +#include + +#include "cdf.h" + +/****************************************************************************** +* Function prototypes. +******************************************************************************/ + +void StatusHandler (long); +void DynamicErrorHandle (CDFid); + +/****************************************************************************** +* MAIN. +******************************************************************************/ +int main (int argc, char **argv) { + +CDFid id; /* CDF identifier. */ +CDFstatus status; /* CDF completion status. */ + +void *buffer = NULL, *units, *lat; +void *time, *image, *pixelValue; +char varName[CDF_VAR_NAME_LEN256+1], + attrName[CDF_ATTR_NAME_LEN256+1], subincrement, + copyright[CDF_COPYRIGHT_LEN+1]; +int i, j; +long TimeVarNum, ImageVarNum, LatVarNum, attrNum, recNum, numDims, recVary, + dimIndices[CDF_MAX_DIMS], dimCounts[CDF_MAX_DIMS], + dimInterval[CDF_MAX_DIMS], dimSizes[CDF_MAX_DIMS], dimVarys[CDF_MAX_DIMS]; +long datatype, numElements, numRecs, arraySize, attrScope, maxgEntry, + maxrEntry, maxzEntry; +long encoding, majority, maxrRec, numrVars, maxzRec, numzVars, numAttrs; +long version, release, increment; +long ilen; + +/****************************************************************************** +* Get the current CDF library version number. +******************************************************************************/ +status = CDFgetLibraryVersion (&version, &release, &increment, &subincrement); +if (status != CDF_OK) StatusHandler (status); +printf ("Current CDF library version: CDF %d.%d.%d\n\n", + version, release, increment); + +status = CDFgetLibraryCopyright (copyright); +if (status != CDF_OK) StatusHandler (status); +printf ("CDF library copyright:\n\t%s\n\n", copyright); + +/****************************************************************************** +* Open the CDF. +******************************************************************************/ +if (argc > 1) + status = CDFopenCDF (argv[1], &id); +else + status = CDFopenCDF ("example1", &id); +if (status != CDF_OK) StatusHandler (status); + +status = CDFgetCopyright (id, copyright); +if (status != CDF_OK) StatusHandler (status); +printf ("CDF copyright:\n\t%s\n\n", copyright); + +/* Get the CDF version that was used to create this CDF file */ +status = CDFgetVersion (id, &version, &release, &increment); +if (status != CDF_OK) StatusHandler (status); + +status = CDFinquireCDF (id, + &numDims, dimSizes, /* only good for rVars */ + &encoding, &majority, + &maxrRec, &numrVars, /* only good for rVars */ + &maxzRec, &numzVars, &numAttrs); +if (status != CDF_OK) StatusHandler (status); + +printf ("CDF file name: example1.cdf\n"); +printf ("\tVersion: CDF %d.%d.%d\n", version, release, increment); +printf ("\tNumber of variables: %d rVars, %d zVars\n", numrVars, numzVars); +printf ("\tNumber of attributes (global & variable): %d\n", numAttrs); +printf ("\tMax record number for zVariables: %d\n\n", maxzRec); + +/****************************************************************************** +* Read the value of the global attribute named TITLE. +******************************************************************************/ +attrNum = CDFgetAttrNum (id, "TITLE"); +if (attrNum < CDF_OK) StatusHandler (status); + +status = CDFinquireAttr (id, attrNum, attrName, &attrScope, + &maxgEntry, + &maxrEntry, /* only applicable for variable attr */ + &maxzEntry); /* only applicable for variable attr */ +if (status != CDF_OK) StatusHandler (status); + +if (attrScope == GLOBAL_SCOPE) { + printf ("Global attribute TITLE:\n"); + for (i=0; i <= maxgEntry; i++) { + status = CDFinquireAttrgEntry (id, attrNum, (long) i, &datatype, + &numElements); + if (status != CDF_OK) StatusHandler (status); + + status = CDFgetDataTypeSize (datatype, &ilen); + ilen = ilen * numElements; + if (datatype == CDF_CHAR || datatype == CDF_UCHAR) ++ilen; + buffer = (void *) malloc (ilen); + if (buffer == NULL) DynamicErrorHandle (id); + + status = CDFgetAttrgEntry (id, attrNum, (long) i, buffer); + if (status != CDF_OK) StatusHandler (status); + ((char *) buffer)[numElements] = '\0'; + printf (" entry #%d: %s\n", i, buffer); + free (buffer); + } +} + +/****************************************************************************** +* Read the value of the zVariable attribute named UNITS and FIELDNAM that +* are associated with the Time variable +******************************************************************************/ +TimeVarNum = CDFgetVarNum (id, "Time"); +if (TimeVarNum < CDF_OK) StatusHandler (TimeVarNum); + +attrNum = CDFgetAttrNum (id, "FIELDNAM"); +if (attrNum < CDF_OK) StatusHandler (attrNum); + +status = CDFinquireAttrzEntry (id, attrNum, TimeVarNum, + &datatype, &numElements); +if (status != CDF_OK) StatusHandler (status); + +if (datatype == CDF_CHAR) { + buffer = (char *) malloc (sizeof(char) * numElements + 1); + if (buffer == NULL) DynamicErrorHandle (id); + status = CDFgetAttrzEntry (id, attrNum, TimeVarNum, buffer); + ((char *) buffer)[numElements] = '\0'; + printf ("\nTime:\n FIELDNAME = %s\n", buffer); + free (buffer); +} + +attrNum = CDFgetAttrNum (id, "UNITS"); +if (attrNum < CDF_OK) StatusHandler (attrNum); + +status = CDFinquireAttrzEntry (id, attrNum, TimeVarNum, + &datatype, &numElements); +if (status != CDF_OK) StatusHandler (status); + +status = CDFgetDataTypeSize (datatype, &ilen); +ilen = ilen * numElements; +if (datatype == CDF_CHAR || datatype == CDF_UCHAR) ++ilen; +units = (void *) malloc (ilen); +if (buffer == NULL) DynamicErrorHandle (id); +status = CDFgetAttrzEntry (id, attrNum, TimeVarNum, units); +if (status != CDF_OK) StatusHandler (status); +((char *)units)[numElements] = '\0'; +printf (" UNITS = %s\n", units); +free (units); + +/****************************************************************************** +* Read data for 'Time' zVariable. +******************************************************************************/ +recNum = 0L; +status = CDFgetDataTypeSize (datatype, &ilen); +ilen = ilen * numElements; +if (datatype == CDF_CHAR || datatype == CDF_UCHAR) ++ilen; +time = (void *) malloc (ilen); +if (time == NULL) DynamicErrorHandle (id); +status = CDFgetzVarRecordData (id, TimeVarNum, recNum, time); +if (status != CDF_OK) StatusHandler (status); + +printf ("Time:\n Record #1: %d\n", *(int *) time); +recNum = 1L; +status = CDFgetzVarRecordData (id, TimeVarNum, recNum, time); +if (status != CDF_OK) StatusHandler (status); +printf (" Record #2: %d\n", *(int *)time); +free (time); + +/****************************************************************************** +* Delete the second record from 'Time' zVariable. Record number starts at 0. +******************************************************************************/ +status = CDFdeletezVarRecords (id, TimeVarNum, + 1L, /* start record number */ + 1L); /* end record number */ +if (status != CDF_OK) StatusHandler (status); + +/****************************************************************************** +* Read data for 'Latitude' zVariable. +******************************************************************************/ +dimIndices[0] = 0; +dimIndices[1] = 0; +recNum = 0; + +LatVarNum = CDFgetVarNum(id,"Latitude"); +if (LatVarNum < CDF_OK) StatusHandler (LatVarNum); + +status = CDFsetzVarSeqPos (id, LatVarNum, recNum, dimIndices); +if (status != CDF_OK) StatusHandler (status); + +printf ("\nLatitude:\n Record #1:\n"); + +/* Read one value at a time - inefficient way of reading data if the whole */ +/* array needs to be read. */ +status = CDFgetDataTypeSize (datatype, &ilen); +ilen = ilen * numElements; +if (datatype == CDF_CHAR || datatype == CDF_UCHAR) ++ilen; +lat = (void *) malloc (ilen); +if (lat == NULL) DynamicErrorHandle (id); +for (i=0; i < 181; i++) { + status = CDFgetzVarSeqData (id, LatVarNum, lat); + if (status != CDF_OK) StatusHandler (status); + printf ("%d ", *(short *)lat); +} +printf ("\n"); +free (lat); + +/****************************************************************************** +* Read data for 'Image' zVariable (10 x 20 array). +******************************************************************************/ +dimIndices[0] = 0; +dimIndices[1] = 0; +dimInterval[0] = 1; +dimInterval[1] = 1; + +ImageVarNum = CDFgetVarNum (id, "Image"); +if (ImageVarNum < CDF_OK) StatusHandler (ImageVarNum); + +status = CDFinquirezVar (id, ImageVarNum, varName, &datatype, + &numElements, &numDims, dimSizes, &recVary, dimVarys); +if (status != CDF_OK) StatusHandler (status); + +status = CDFgetzVarNumRecsWritten (id, ImageVarNum, &numRecs); +if (status != CDF_OK) StatusHandler (status); + +status = CDFgetDataTypeSize (datatype, &ilen); +ilen = ilen * numElements; +if (buffer == NULL) DynamicErrorHandle (id); + +arraySize = 1; +for (i=0; i < numDims; i++) { + arraySize *= dimSizes[i]; + dimCounts[i] = dimSizes[i]; +} +image = (void *) malloc (ilen * arraySize * numRecs); + +/* read 3 records in one scoop */ +status = CDFhyperGetzVarData (id, ImageVarNum, + 0L, /* record start */ + 3L, /* # of records to read */ + 1L, /* record interval */ + dimIndices, /* dimension dimIndices */ + dimCounts, /* dimension counts */ + dimInterval, /* dimension interval */ + image); +if (status != CDF_OK) StatusHandler (status); +printf ("\nImage: \n"); +for (i=0; i < numRecs; i++) { + printf ("Record # %d:\n", i); + for (j=0; j < arraySize; j++) + printf ("%d ", *(((int *)image)+i*arraySize+j)); + printf ("\n\n"); +} +free (image); + +/* Read a single value - image[1,1] of the second record */ +recNum = 1; /* record number starts at 0 */ +dimIndices[0] = 1; +dimIndices[1] = 1; + +pixelValue = (void *) malloc (ilen); +if (pixelValue == NULL) DynamicErrorHandle (id); +status = CDFgetzVarData (id, ImageVarNum, recNum, dimIndices, pixelValue); +if (status != CDF_OK) StatusHandler (status); +printf ("Image record #2:[1,1] = %d\n", *(int *)pixelValue); +free (pixelValue); + +/****************************************************************************** +* Close CDF. +******************************************************************************/ +status = CDFcloseCDF (id); +if (status != CDF_OK) StatusHandler (status); + +return 0; +} + +/****************************************************************************** +* Status handler. +******************************************************************************/ +void StatusHandler (status) +CDFstatus status; +{ +char message[CDF_STATUSTEXT_LEN+1]; + +if (status < CDF_WARN) { + printf ("An error has occurred, halting...\n"); + CDFgetStatusText (status, message); + printf ("%s\n", message); + exit (1); +} +else + if (status < CDF_OK) { + printf ("Warning, function may not have completed as expected...\n"); + CDFgetStatusText (status, message); + printf ("%s\n", message); + } + else + if (status > CDF_OK) { + printf ("Function completed successfully, but be advised that...\n"); + CDFgetStatusText (status, message); + printf ("%s\n", message); + } +return; +} + +/****************************************************************************** +* Dynamic allocation error handler. +******************************************************************************/ +void DynamicErrorHandle (id) +CDFid id; +{ + CDFstatus status; + printf ("An error has occurred while doing malloc, halting...\n"); + status = CDFcloseCDF (id); + if (status != CDF_OK) StatusHandler (status); + return; +} diff --git a/cdf38_1-dist/samples/zfia10x.cdf b/cdf38_1-dist/samples/zfia10x.cdf new file mode 100644 index 0000000000000000000000000000000000000000..44a808887fe395de6d3d62722935554c7aee1c7c GIT binary patch literal 21387 zcmeHPdvH|Oc|S53DKf^G00s|+6Wd9I4YH6ZkG6rkcVAlAmBj8M^KfQZYZtU(wJWby zHpH2!qOmhX@z{*rNeRuQa)LYj(ROH?I!wlHS0ZLo54eo$*oo67wBusSs z{=W0Ldv>{32r>Ad<(s+pJNMl4{qFZX=kC2%I{V+Ofw9Y%nV^OZU^pgfu&|p&4Yl0@ z?$BjL&Hlo`Kq1cqsZxrE3dMm`iMRLzp_R=o{*~Nc7(7_a?&~k{H5)g!t!{5?TgSV6 z3ExBEM9ANq7)mPN#}#E(eBk0?D7rmomlXa50m~ zKbpyvR`FP>crcgBr+ItZ`t@u0_JpswB|?MpnG#>UnnRt$_MV>Zc+!eS63Ij`-rGtF zw9-Xd!`;0rn;pAm*w_KND*rI{P^ZLdI3juCYYO`gavj>_*QyI^pQ3+>9NQ28pDo+7 zLXzL|FW@Rh4wt9YUgIPq$!L&sUUjnm4!!`BZ>=%ALmju9{n~F27mB$w4;PV9vD7{! zQ7ccBQl)GmKeUR6viUrZQC}oKg#AXJ<6$#ejiUxKWrm0tU7^xHdkk&LfKO0=C=!eY zx_q(9`MPXH$sf}4*>8iB-*mJV%6_>gpAjXq0~tP)&0{KQjI87RwLT3SgKrkR|>hIh=4!_R^vJxYpf=;r^NCXDrOQ8$iNcE8jJFGN~}meojJg} z3YAq(YQJ$3%0Ad;}eu;rh$uD= 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 PU`^bqE(X5~+minWv%fr} literal 0 HcmV?d00001 diff --git a/cdf38_1-dist/src/definitions/definitions.B b/cdf38_1-dist/src/definitions/definitions.B new file mode 100644 index 0000000..8ecf48e --- /dev/null +++ b/cdf38_1-dist/src/definitions/definitions.B @@ -0,0 +1,66 @@ +#------------------------------------------------------------------------------ +# +# NSSDC/CDF Definitions for using CDF. +# Bourne shell/bash/zsh. +# +# Version 1.2, 19-Mar-96, Hughes STX. +# +# Modification History: +# +# V1.0 14-Jun-95, J Love Original version. +# V1.1 18-Jul-95, J Love Added CDFexport. +# V1.2 19-Mar-96, J Love CDF V2.6. +# V1.3 05-Aug-08, M Liu CDF V3.3. +# V1.4 12-Apr-11, M Liu CDF V3.3.2 for adding leap seconds env. var. +# +#----------------------------------------------------------------------------- +# Before using this script file, change the definition of CDF_BASE for where +# CDF was installed on your machine (ie. the directory containing the `bin', +# `lib', and `include' directories). All CDF users can then use the command +# +# $ . /bin/definitions.B +# +# to setup the necessary environment variables (where is the full +# directory path leading to where CDF was installed). +# +# Aliases are not available with the Bourne shell. The toolkit programs must +# be invoked by specifying the actual name of the executable. The executables +# are found in ${CDF_BIN} (after the installation step of building the CDF +# distribution). For example, to execute CDFedit the following would be used: +# +# $ ${CDF_BIN}/cdfedit +# +# Note that `{CDF_BIN}' could also also be added to a user's path allowing +# the toolkit programs to be executed simply by specifying their names. +#----------------------------------------------------------------------------- + +export CDF_BASE= + +export CDF_INC=$CDF_BASE/include +export CDF_LIB=$CDF_BASE/lib +export CDF_BIN=$CDF_BASE/bin +export CDF_JAVA=$CDF_BASE/cdfjava +export CDF_HELP=$CDF_BASE/lib/cdf/help +export CDF_LEAPSECONDSTABLE=$CDF_BASE/CDFLeapSeconds.txt + +alias cdfedit=$CDF_BIN/cdfedit +alias cdfexport=$CDF_BIN/cdfexport +alias cdfconvert=$CDF_BIN/cdfconvert +alias cdfinquire=$CDF_BIN/cdfinquire +alias cdfstats=$CDF_BIN/cdfstats +alias cdfdump=$CDF_BIN/cdfdump +alias cdfirsdump=$CDF_BIN/cdfirsdump +alias cdfcompare=$CDF_BIN/cdfcompare +alias skeletontable=$CDF_BIN/skeletontable +alias skeletoncdf=$CDF_BIN/skeletoncdf +alias cdfdir=$CDF_BIN/cdfdir +alias cdfirsdump=$CDF_BIN/cdfirsdump +alias cdfmerge=$CDF_BIN/cdfmerge +alias cdfbrowse="$CDF_BIN/cdfedit -prompt -browse" +alias cdfvalidate=$CDF_BIN/cdfvalidate +alias cdfleapsecondsinfo=$CDF_BIN/cdfleapsecondsinfo +# The following statements are relevant only for Mac OS X +if [ "$OSTYPE" = "darwin" ]; then + alias cdf-to-netCDF=$CDF_BIN/cdf-to-netCDF + alias netCDF-to-cdf=$CDF_BIN/netCDF-to-cdf +fi diff --git a/cdf38_1-dist/src/definitions/definitions.C b/cdf38_1-dist/src/definitions/definitions.C new file mode 100644 index 0000000..d91d95a --- /dev/null +++ b/cdf38_1-dist/src/definitions/definitions.C @@ -0,0 +1,57 @@ +#------------------------------------------------------------------------------ +# +# NSSDC/CDF Definitions for using CDF. +# C-shell and `tcsh'. +# +# Version 1.2, 19-Mar-96, Hughes STX. +# +# Modification History: +# +# V1.0 14-Jun-95, J Love Original version. +# V1.1 18-Jul-95, J Love Added CDFexport. +# V1.2 19-Mar-96, J Love CDF V2.6. +# V1.3 05-Aug-08, M Liu CDF V3.3. +# V1.4 12-Apr-11, M Liu CDF V3.3.2 for adding leap seconds env. var. +# +#----------------------------------------------------------------------------- +# Before using this script file, change the definition of CDF_BASE for where +# CDF was installed on your machine (ie. the directory containing the `bin', +# `lib', and `include' directories). All CDF users can then use the command... +# +# $ source /bin/definitions.C +# +# ...to setup the necessary environment variables and aliases (where +# is the full directory path leading to where CDF was installed). Note that +# `/bin' could also be added to a user's path. +#----------------------------------------------------------------------------- + +setenv CDF_BASE + +setenv CDF_INC $CDF_BASE/include +setenv CDF_LIB $CDF_BASE/lib +setenv CDF_BIN $CDF_BASE/bin +setenv CDF_JAVA $CDF_BASE/cdfjava +setenv CDF_HELP $CDF_BASE/lib/cdf/help +setenv CDF_LEAPSECONDSTABLE $CDF_BASE/CDFLeapSeconds.txt + +alias cdfedit $CDF_BIN/cdfedit +alias cdfexport $CDF_BIN/cdfexport +alias cdfconvert $CDF_BIN/cdfconvert +alias cdfinquire $CDF_BIN/cdfinquire +alias cdfstats $CDF_BIN/cdfstats +alias cdfdump $CDF_BIN/cdfdump +alias cdfirsdump $CDF_BIN/cdfirsdump +alias cdfcompare $CDF_BIN/cdfcompare +alias skeletontable $CDF_BIN/skeletontable +alias skeletoncdf $CDF_BIN/skeletoncdf +alias cdfdir $CDF_BIN/cdfdir +alias cdfmerge $CDF_BIN/cdfmerge +alias cdfbrowse "$CDF_BIN/cdfedit -prompt -browse" +alias cdfvalidate $CDF_BIN/cdfvalidate +alias cdfleapsecondsinfo $CDF_BIN/cdfleapsecondsinfo +# The following statements are relevant only for Mac OS X +if ( "$OSTYPE" == "darwin" ) then + alias cdf-to-netCDF $CDF_BIN/cdf-to-netCDF + alias netCDF-to-cdf $CDF_BIN/netCDF-to-cdf +endif + diff --git a/cdf38_1-dist/src/definitions/definitions.K b/cdf38_1-dist/src/definitions/definitions.K new file mode 100644 index 0000000..1445a2e --- /dev/null +++ b/cdf38_1-dist/src/definitions/definitions.K @@ -0,0 +1,56 @@ +#------------------------------------------------------------------------------ +# +# NSSDC/CDF Definitions for using CDF. +# Korn, Bash, and posixSHELL. +# +# Version 1.2, 19-Mar-96, Hughes STX. +# +# Modification History: +# +# V1.0 14-Jun-95, J Love Original version. +# V1.1 18-Jul-95, J Love Added CDFexport. +# V1.2 19-Mar-96, J Love CDF V2.6. +# V1.3 05-Aug-08, M Liu CDF V3.3. +# V1.4 12-Apr-11, M Liu CDF V3.3.2 for adding leap seconds env. var. +# +#----------------------------------------------------------------------------- +# Before using this script file, change the definition of CDF_BASE for where +# CDF was installed on your machine (ie. the directory containing the `bin', +# `lib', and `include' directories). All CDF users can then use the command... +# +# $ . /bin/definitions.K +# +# ...to setup the necessary environment variables and aliases (where +# is the full directory path leading to where CDF was installed). Note that +# `/bin' could also be added to a user's path. +#----------------------------------------------------------------------------- + +export CDF_BASE= + +export CDF_INC=$CDF_BASE/include +export CDF_LIB=$CDF_BASE/lib +export CDF_BIN=$CDF_BASE/bin +export CDF_JAVA=$CDF_BASE/cdfjava +export CDF_HELP=$CDF_BASE/lib/cdf/help +export CDF_LEAPSECONDSTABLE=$CDF_BASE/CDFLeapSeconds.txt + +alias cdfedit=$CDF_BIN/cdfedit +alias cdfexport=$CDF_BIN/cdfexport +alias cdfconvert=$CDF_BIN/cdfconvert +alias cdfinquire=$CDF_BIN/cdfinquire +alias cdfstats=$CDF_BIN/cdfstats +alias cdfdump=$CDF_BIN/cdfdump +alias cdfirsdump=$CDF_BIN/cdfirsdump +alias cdfcompare=$CDF_BIN/cdfcompare +alias skeletontable=$CDF_BIN/skeletontable +alias skeletoncdf=$CDF_BIN/skeletoncdf +alias cdfdir=$CDF_BIN/cdfdir +alias cdfmerge=$CDF_BIN/cdfmerge +alias cdfbrowse="$CDF_BIN/cdfedit -prompt -browse" +alias cdfvalidate=$CDF_BIN/cdfvalidate +alias cdfleapsecondsinfo=$CDF_BIN/cdfleapsecondsinfo +# The following statements are relevant only for Mac OS X +if [ "$OSTYPE" = "darwin" ]; then + alias cdf-to-netCDF=$CDF_BIN/cdf-to-netCDF + alias netCDF-to-cdf=$CDF_BIN/netCDF-to-cdf +fi diff --git a/cdf38_1-dist/src/help/cdf2skt.olh b/cdf38_1-dist/src/help/cdf2skt.olh new file mode 100644 index 0000000..423795d --- /dev/null +++ b/cdf38_1-dist/src/help/cdf2skt.olh @@ -0,0 +1,416 @@ +#****************************************************************************** +# Copyright 1996-2014 United States Government as represented by the +# Administrator of the National Aeronautics and Space Administration. +# All Rights Reserved. +#****************************************************************************** +#------------------------------------------------------------------------------ +# +# NSSDC/CDF SkeletonTable online help. +# +# Version 1.1c, 21-Nov-97, Hughes STX. +# +# Modification history: +# +# V1.0 ?, J Love Original version. +# V1.1 23-Sep-96, J Love CDF V2.6. +# V1.1a 7-Jan-97, J Love Fixed cache qualifier. +# V1.1b 21-Feb-97, J Love Removed RICE. +# V1.1c 21-Nov-97, J Love Windows NT/95. +# +#------------------------------------------------------------------------------ +#ifos mac win +SkeletonTable is used to create a skeleton table file from a CDF. The +parameters/qualifiers dialog box displayed when SkeletonTable is 'executed' +contains the following controls. + +Edit fields for... + + CDF: The pathname of the CDF from which a skeleton table + will be created. At the end of this field a button + labeled "Select" is present. When selected, a + standard input file dialog is displayed from which + the CDF may be selected. + + Skeleton: The pathname of the skeleton table to be created. At + the end of this field a button labeled "Select" is + present. When selected, a standard output file dialog + is displayed in which the skeleton table pathname may + be specified. Don't specify an extension - '.skt' is + appended automatically. If this field is left blank, + the skeleton table name defaults to the name of the CDF + (with '.skt' appended) and is placed in the folder + containing the SkeletonTable executable. The "Output + to screen" check box also affects the destination of + the skeleton table. + + Cache sizes: The number of buffers to be used for the CDF's dotCDF + file, staging file, and compression scratch file. + This field, used only in the CDF access process during + the run, will not change the contents of the skeleton + table. Large number(s) will likely reduce physical I/Os + if variable data are involved. If this field is left + blank, default cache sizes chosen by the CDF library + are used. The cache sizes are specified with a + comma-separated list of pairs where + is the number of cache buffers and is + the type of file. The file 's are as follows: + 'd' for the dotCDF file, 's' for the staging file, and + 'c' for the compression scratch file. For example, + '200d,100s' specifies 200 cache buffers for the dotCDF + file and 100 cache buffers for the staging file. The + dotCDF file cache size can also be specified without + the 'd' for compatibility with older CDF + releases (eg. '200,100s'). Note that not all of the + file types must be specified. Those not specified + will receive a default cache size. + + Variables: If the values for selected variables are to be + displayed, this field should contain a comma-separated + list of delimited variable names. See the 'Selected + variables' radio button. + +Check boxes for... + + Output to screen: Whether or not the skeleton table is displayed on the + screen in the 'SkeletonTable: standard output' window. + If not checked, the skeleton table is written to a + file. + + Use FORMAT: Whether or not the FORMAT attribute is used when + writing variable values (if the FORMAT attribute + exists and an entry exists for the variable). + + -0.0 to 0.0: Whether or not -0.0 is converted to 0.0 by the CDF + library when read from a CDF. + + Page output: If the skeleton table is being displayed on the screen, + whether or not the output is displayed one page (screen) + at a time. + + Report info's: Whether or not informational status codes from the CDF + library should be reported. + + Report warnings: Whether or not warning status codes from the CDF + library should be reported. + + Report errors: Whether or not error status codes from the CDF library + should be reported. + + Log progress: Whether or not progress messages are displayed. + + Display statistics: Whether or not caching statistics are displayed at the + end of each CDF. + +Radio buttons for... + + zMode: The zMode to be used for the CDF. + 0...zMode is disabled. + 1...zMode/1 should be used. The dimension + variances of the rVariables will be preserved. + 2...zMode/2 should be used. The dimensions of + rVariables having a variance of NOVARY (false) + are hidden. + + No values: Place no variable values in the skeleton table. + NRV values: Place only NRV variable values in the skeleton table. + RV values: Place only RV variable values in the skeleton table. + All values: Place all variable values in the skeleton table. + Selected values: Place the values of the variables named in the + 'Variables' edit field in the skeleton table. + +Buttons for... + + Enter Causes SkeletonTable to create a skeleton table based + on the parameters/qualifiers specified. + + Help Causes this online help to be displayed. + +#ifos mac + Quit Causes SkeletonTable to terminate. (A skeleton table + is not created.) This button is only present the first + time the parameters/qualifiers dialog box is displayed. + +#endos + Cancel Causes the parameters/qualifiers dialog box to be + closed. (A skeleton table is not created.) +#ifos mac + This button is only present after the first time the + parameters/qualifiers dialog box is displayed. +#endos +#else +#ifos vms +Usage: $ SKELETONTABLE [/SKELETON=] [/[NO]NEG2POSFP0] + [/NONRV | /NRVTABLE | /VALUES=] + [/CACHE=()] [/[NO]FORMAT] [/[NO]SCREEN] + [/[NO]LOG] [/[NO]PAGE] [/[NO]STATISTICS] + [/REPORT=()] [/ZMODE=] [/ABOUT] + [/ISO8601 | /ZISO8601] [/ADVFORMAT=

    (x`Y_|Ha6c3KhQ9f|!Fp~RnUpPWmR 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

    !6xf@qB1y$@kiut{E4q(KP*Wx$>wsI^G$v{& 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

    s;QY2UM~oucU)O#8$S_t`Oc$i|-p)`6 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

    gAiHpYzg3YfHV%ToNmn!VQ(>*=ohb6 zl>={ZgFGgJr!xdKEf68w*lr&9RSl`WCZO9O;0$cOMR@D)MM)^2y4f@JGFK+t~zDHc9EKYUFHOE~0v_#SJ&11( zTfXm+onp=NH*jCX2D3ZK2$HvU@ng3z-P&LZ1z7khg?$@A>{f1ooGon$S|zBfC)if_ zm4IPh*xFSPlRLTMIOl2u=fVemGYvuPmIf%#LimxhU=YcHL9}k*GZ3V1aR}Wk;d+t* zyn10nLV3qRkZXww!|HmY(C(X$qjNVZa@2rxN5BI=Uzp(d!^Odf&5u!`$3CT)LeTqy z_2&z=TyO&6AU_wNp*srR{vPxNKP)+jdc)ou&UIj;?RQVaB?AWSdUBkM>=7f+Nq%58H`%Q>(Wd( zIV@DfKe>NgQAcm8(>u~z*OHua=r_3Ag!1-Kjy9}490L_k|u-`w-PqUj3M zBLiy-c#5`6z@z>ub2icL&GA*O<6w}|(XLM_Ka&Y_wxC?}q2bS9;6ULZR^SPGAOjDI z>(WhBGdaPsFb|xTyJ2Dz&mlzFf@0RCKR@F($*@2^nQay1kiqYZ_?ms};RJ_Ai;!N`Os zilSvg9KtpQ?#~?f0Fs0{Ai?MV>91>)wSB0~>^a)GGKd8B`~x0%l3-o^L)hGwzr=%+ z#=&^FEwo;XGKd1_*)=VGF$mkCA2B4s3+xyKb0K_mcCfAywz8A`plM*A88CwebPar| zFTxFjY;MiTh&pr(u;h}~dR>~g6TlEQXnwwY`2^6z4urWRUe<)5xB~ZpMPNoRQU0AtPY_5nXw34JGkKfOb&?lY$#=P^e7;6 zl)sDL)=od|n3b$%0O$aSXZYx9HU16SN+?k16-*+4J-Cby&oa*~C?E@$&`obefrU`6!ARX2Rm#`}gK-hq>(C5^+jdt8Ecz6lI zlMWN#%3Zpgj-<=DE52yp4ftmF$BaL)wVIKbKPDYxDsBUP(g6mJ@Xub4AmS0Hn7b81 z3gE+hp6gwTKDQ1**eB%gO&S)!`@ts1y4B6V{dEB0wKMDg*s9hDINTBiY{K0O7l5TJ z@`vkrTllC>H1io=cYwnULHM*ZGC%=YVcfx9^5*-$joFOB!+;>SA!?5eQb4~`z$OPQ z>ODP4=YS;-!2=(IX~XLPn=kyH{9v#74Aw4LARocQA2ad?v`NkP*-`vUBmi`Si48ut zU77m>_>Wt#_cc`*e_vXICr0$!KajPqUQ>lw@b2`1291GVnLy9LIl?OhIYc6OMn6>aGKr|hX%s%jXOp#?9bjT|Jjl!D-iMjVJil!8IfK;<#$#s=|BW0s8xUZl& zpY@$Fo`VGH0<{b{SjKCkUfRL@p)%S2W-Y;&jFT&^xFb z@LEXTn&7W55WpA1sfz#kbug;%+JlRfu+PUM4aq^d4{qduKc@DBvztpGJfQyrudggb diff --git a/cdf36_3-dist/cdfjava/classes/cdfjava.jar b/cdf36_3-dist/cdfjava/classes/cdfjava.jar deleted file mode 100644 index 0eb26c590585094e2f152ee7a3f890a7053d7444..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 89691 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%0DFI3i_Vf8yqDBg|u@n$?1~JNy?VSH~pO% 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 apB`FM6%YSMJ}T^%j|Tu`7-DY&!2bcVTrP9~ diff --git a/cdf36_3-dist/cdfjava/examples/CreateCDF.class b/cdf36_3-dist/cdfjava/examples/CreateCDF.class deleted file mode 100644 index 8285da0a8648c952fd680f2d24edb7dab5d8c569..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14898 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 LVzm`(rOx_4q9|Vg diff --git a/cdf36_3-dist/cdfjava/examples/ReadCDF.java b/cdf36_3-dist/cdfjava/examples/ReadCDF.java deleted file mode 100644 index ec35a00..0000000 --- a/cdf36_3-dist/cdfjava/examples/ReadCDF.java +++ /dev/null @@ -1,633 +0,0 @@ -/****************************************************************************** -* Copyright 1996-2013 United States Government as represented by the -* Administrator of the National Aeronautics and Space Administration. -* All Rights Reserved. -******************************************************************************/ - -import java.io.*; -import java.text.*; -import java.util.*; -import java.lang.reflect.*; -import gsfc.nssdc.cdf.*; -import gsfc.nssdc.cdf.util.*; - -/** - * This program demonstrates how to read the contents of test.cdf created - * by CreateCDF.java in this directory. - */ - -public class ReadCDF implements CDFConstants{ - - public static void main(String[] args) { - String fileName = "test"; - int maxVarNameLength = 22; - int ii, jj; - CDF cdf; - - jj = args.length; - if (jj == 0) jj = 1; -/* - try { - CDF.setValidate (VALIDATEFILEoff); - } catch (CDFException vax) { - System.out.println("*** Error at setting the validation..."+vax); - System.exit(1); - } -*/ - for (ii = 0; ii < jj; ++ii) { - if (args.length != 0) fileName = args[ii]; - if (ii > 0) - System.out.println(""); - System.out.println("Reading " + fileName + "...:\n"); - try { - cdf = null; - cdf = CDF.open(fileName, READONLYon); - if (cdf.getStatus() != CDF_OK) - { - if (cdf.getStatus() == CHECKSUM_ERROR) - System.out.println("*** Checksum failed... the cdf file is corrupted...\n"); - if (cdf != null) cdf.close(); - } else { - - /************************************************************/ - /* If a decoding method is not specified when a CDF file is */ - /* opened, the CDF libaray knows what encoding method was */ - /* used to create the CDF file. */ - /* */ - /* Decoding method should be specified only if one needs */ - /* to translate data from one platform to another. */ - /************************************************************/ - // cdf.selectDecoding(NETWORK_DECODING); - - /**********************************/ - /* Print out the file information */ - /**********************************/ - System.out.println("File Info\n"+ - "========================================="); - - if (cdf.confirmReadOnlyMode() == READONLYon) - System.out.println("CDF File: "+cdf+" (READONLYon)"); - else { - System.out.println("CDF File: "+cdf+" (READONLYoff)"); - } - - System.out.println("Version: "+cdf.getVersion()); - String cp = cdf.getCopyright(); - System.out.println("Copyright: "+cp); - System.out.println("Format: "+CDFUtils.getStringFormat(cdf)); - System.out.println("Encoding: "+ - CDFUtils.getStringEncoding(cdf)); - System.out.println("Decoding: "+ - CDFUtils.getStringDecoding(cdf)); - System.out.println("Majority: "+ - CDFUtils.getStringMajority(cdf)); - if (cdf.getMajority() == COLUMN_MAJOR) - System.out.println("(******** Data dumps from multi-dimensional "+ - "variables are shown row-based.)"); - System.out.println("Checksum: "+ - CDFUtils.getStringChecksum(cdf)); - System.out.println("numRvars: "+cdf.getNumRvars()); - System.out.println("numZvars: "+cdf.getNumZvars()); - System.out.println("numAttrs: "+cdf.getNumAttrs()+ - " ("+cdf.getNumGattrs()+" global, "+ - cdf.getNumVattrs()+" variable)"); - System.out.println("Compression: "+cdf.getCompression()); - if (cdf.getCompressionType() != 0) - System.out.println("cPct: "+cdf.getCompressionPct()); - if (new Integer(cdf.getVersion().substring(0,1)).intValue() > 3) { - long lsLastUpdated = cdf.getLeapSecondLastUpdated(); - if (lsLastUpdated > 0) - System.out.println("LeapSecondLastUpdated: "+lsLastUpdated); - } - System.out.println("Cache Size: "+cdf.confirmCDFCacheSize()); - - /**********************************************/ - /* Print out the Global Attribute information */ - /**********************************************/ - Attribute a; - String attrName = null; - int i; - long n = cdf.getNumGattrs(); - Vector ga = cdf.getGlobalAttributes(); - - System.out.println("\nGlobal Attributes ("+n+" attributes)\n"+ - "========================================="); - i = 0; - for (Enumeration e = ga.elements() ; e.hasMoreElements() ;) { - a = (Attribute) e.nextElement(); - n = a.getNumEntries(); - if (i == 0) { - attrName = a.getName(); - if (n <= 1) - System.out.println (attrName+" ("+n+" entry):"); - else - System.out.println (attrName+" ("+n+" entries):"); - } - else { - String currAttrName = a.getName();; - if (currAttrName != attrName) { - if (n <= 1) - System.out.println (currAttrName+" ("+n+" entry):"); - else - System.out.println (currAttrName+" ("+n+" entries):"); - } - } - i++; - Vector ent = a.getEntries(); - for (Enumeration e1 =ent.elements() ; e1.hasMoreElements() ;) { - Entry entry = (Entry) e1.nextElement(); - if (entry != null) { - long eDataType = entry.getDataType(); - System.out.print ("\t"+entry.getID()+" ("+ - CDFUtils.getStringDataType(eDataType)+ - "/"+entry.getNumElements()+ - "): \t"); - Object data = entry.getData(); - if (eDataType == CDF_EPOCH) { - CDFUtils.printData ( - Epoch.encode(((Double) data).doubleValue())); - } else if (eDataType == CDF_EPOCH16) { - CDFUtils.printData (Epoch16.encode((double[])data)); - } else if (eDataType == CDF_TIME_TT2000) { - CDFUtils.printData ( - CDFTT2000.encode(((Long)data).longValue())); - } else { - if (CDFUtils.isStringDataType(eDataType)) - System.out.print("\""); - CDFUtils.printData (data); - if (CDFUtils.isStringDataType(eDataType)) - System.out.print("\""); - } - System.out.println (" "); - } - } - System.out.println (" "); - } - - /************************************************/ - /* Print out the Variable Attribute information */ - /************************************************/ - attrName = null; - n = cdf.getNumVattrs(); - Vector va = cdf.getVariableAttributes(); - - System.out.println("\nVariable Attributes ("+n+" attributes)\n"+ - "========================================="); - i = 0; - for (Enumeration e = va.elements() ; e.hasMoreElements() ;) { - a = (Attribute) e.nextElement(); - if (i == 0) { - attrName = a.getName(); - System.out.println (attrName+":"); - } - else { - String currAttrName = a.getName();; - if (currAttrName != attrName) - System.out.println (currAttrName+":"); - } - i++; - Vector ent = a.getEntries(); - for (Enumeration e1 =ent.elements() ; e1.hasMoreElements() ;) { - Entry entry = (Entry) e1.nextElement(); - if (entry != null) { - long eDataType = entry.getDataType(); - Variable v = cdf.getVariable(entry.getID()); - System.out.print ("\t"+v.getName()+" ("+ - CDFUtils.getStringDataType(eDataType)+ - "/"+entry.getNumElements()+ - "): "); - - Object data = entry.getData(); - if (eDataType == CDF_EPOCH) { - CDFUtils.printData ( - Epoch.encode(((Double) data).doubleValue())); - } else if (eDataType == CDF_EPOCH16) { - CDFUtils.printData (Epoch16.encode((double[])data)); - } else if (eDataType == CDF_TIME_TT2000) { - CDFUtils.printData ( - CDFTT2000.encode(((Long) data).longValue())); - } else { - if (CDFUtils.isStringDataType(eDataType)) - System.out.print("\""); - CDFUtils.printData (data); - if (CDFUtils.isStringDataType(eDataType)) - System.out.print("\""); - } - System.out.println (" "); - } - } - System.out.println (" "); - } - - /**************************************/ - /* Print out the Variable information */ - /**************************************/ - String varName, dataType; - int noOfBlanks; - long dt, numDims, blockingFactor; - Object padValue = null; - - n = cdf.getNumVars(); - Vector vars = cdf.getVariables(); - - System.out.println("\nVariable Information ("+n+" variables)\n"+ - "==================================================="); - for (Enumeration e = vars.elements() ; e.hasMoreElements() ;) { - Variable v = (Variable) e.nextElement(); - - varName = v.getName(); - noOfBlanks = maxVarNameLength - varName.length(); - for (i=0; i < noOfBlanks; i++) - varName = varName + " "; - - long[] dimSizes = v.getDimSizes(); - dt = v.getDataType(); - dataType = CDFUtils.getStringDataType(dt); - dataType = dataType + "/" + String.valueOf(v.getNumElements()); - noOfBlanks = 20 - dataType.length(); - for (i=0; i < noOfBlanks; i++) - dataType = dataType + " "; - - numDims = v.getNumDims(); - System.out.print (varName+dataType+ numDims+":["); - for (i=0; i < numDims; i++) { - if (i > 0) System.out.print (","); - System.out.print (dimSizes[i]); - } - System.out.print ("] "); - // if (numDims == 1) System.out.print ("\t"); - - System.out.print((v.getRecVariance() ? "T" : "F")+"/"); - long[] dimVariances = v.getDimVariances(); - for (i=0; i < v.getNumDims(); i++) - System.out.print( - ((dimVariances[i] == CDFConstants.VARY) ? "T" : "F")); - - String sparseRecord = CDFUtils.getStringSparseRecord(v); - if (!sparseRecord.equals("None")) - System.out.print (" sparseRecord=\""+sparseRecord+"\""); - - // Print the user-define pad value if one exists. - // if (v.checkPadValueExistence()) { - padValue = v.getPadValue(); - if (dt == CDF_EPOCH) - padValue = Epoch.encode(((Double) padValue).doubleValue()); - else if (dt == CDF_EPOCH16) - padValue = Epoch16.encode((double[]) padValue); - else if (dt == CDF_TIME_TT2000) - padValue = CDFTT2000.encode(((Long) padValue).longValue()); - System.out.print (" PadValue="+((CDFUtils.isStringDataType(dt)||CDFUtils.isEpochDataType(dt))?"\"":"")+padValue+((CDFUtils.isStringDataType(dt)||CDFUtils.isEpochDataType(dt))?"\"":"")); - // } - - blockingFactor = v.getBlockingFactor(); - if (blockingFactor > 0) - System.out.print (" blockingFactor=\""+blockingFactor+"\""); - - System.out.println (" "); - } - - /**********************************************************/ - /* Print out the Variable data (all variables in the CDF) */ - /**********************************************************/ - System.out.println("\n\nVariable Data ("+n+" variables)\n"+ - "========================================="); - CDFData data = null; - long numRecs, maxRec; - long[] dimIndices = {0L}; - long[] dimIntervals = {1L}; - long[] dimSizes = {1L}; - - for (Enumeration e = vars.elements() ; e.hasMoreElements() ;) { - Variable v = (Variable) e.nextElement(); - - if (v.getNumDims() > 0) { - dimSizes = v.getDimSizes(); - dimIntervals = new long[dimSizes.length]; - dimIndices = new long[dimSizes.length]; - for (i=0; i < dimSizes.length; i++) { - dimIntervals[i] = 1; - dimIndices[i] = 0; - } - } - maxRec = v.getMaxWrittenRecord(); - numRecs = v.getNumWrittenRecords(); - varName = v.getName(); - System.out.println (varName); - for (i=0; i < varName.length(); i++) - System.out.print ("-"); - System.out.println (" "); - - if (v.getCompressionType() == NO_COMPRESSION) - System.out.println ("Compression: None"); - else - System.out.println ("Compression: "+ - v.getCompression()+" ("+ - v.getCompressionPct()+"%)"); - if (v.checkPadValueExistence()) { - long myDT = v.getDataType(); - Object pv = v.getPadValue(); - if (pv != null) { - if (myDT == CDF_EPOCH) - System.out.println ("Pad value: "+ - Epoch.encode(((Double)pv).doubleValue())); - else if (myDT == CDF_EPOCH16) - System.out.println ("Pad value: "+ - Epoch16.encode((double[])pv)); - else if (myDT == CDF_TIME_TT2000) - System.out.println ("Pad value: "+ - CDFTT2000.toUTCstring(((Long)pv).longValue())); - else if (CDFUtils.isStringDataType(myDT)) - System.out.println ("Pad value: \""+ pv+"\""); - else - System.out.println ("Pad value: "+ pv); - } - } - System.out.println ("Records: "+ - numRecs+"n/"+maxRec+"x"); - System.out.println ("Allocated: "+ - v.getNumAllocatedRecords()+"n/"+ - v.getMaxAllocatedRecord()+"x"); - System.out.println ("Blocking Factor: "+ - v.getBlockingFactor()); - System.out.println ("Sparseness: "+ - CDFUtils.getStringSparseRecord(v)); - System.out.println (" "); - - /********************************************************/ - /* maxRec represents the last record number for this */ - /* variable, not the number of records. */ - /* */ - /* NOTE: maxRec starts at 0, so if the value of maxRec */ - /* is 2, the actual number of records is 3. */ - /* If there are no records exists, the value of */ - /* maxRec is -1. */ - /********************************************************/ - long status; - for (i=0; i <= maxRec; i++) { - data = v.getHyperDataObject(i, 1, 1, - dimIndices, - dimSizes, - dimIntervals); - status = cdf.getStatus(); - if (status == CDF_OK || status != VIRTUAL_RECORD_DATA) { - System.out.println ("Record # "+i+":"); - data.dumpData(); - } - } - System.out.println(""); - } - - /**************************************************/ - /* Print out a few individual variable data and */ - /* attribute entries. */ - /**************************************************/ - if (fileName.equals("test")) { - System.out.println("\n\nIndividual Variable Data\n"+ - "================================="); - - Variable longitude = cdf.getVariable("Longitude"), /* T/T */ - latitude = cdf.getVariable("Latitude"), /* F/T */ - latitude1 = cdf.getVariable("Latitude1"), /* T/F */ - time = cdf.getVariable("Time"), /* T/T */ - foo = cdf.getVariable("foo"), /* F/F */ - v = cdf.getVariable("longitude_dup"); - - System.out.println ("longDup.dumpData():"); - System.out.println ("------------------"); - if (v.getNumDims() > 0) { - dimSizes = v.getDimSizes(); - dimIntervals = new long[dimSizes.length]; - dimIndices = new long[dimSizes.length]; - for (i=0; i < dimSizes.length; i++) { - dimIntervals[i] = 1; - dimIndices[i] = 0; - } - } - maxRec = v.getMaxWrittenRecord(); - for (i=0; i <= maxRec; i++) { - System.out.println ("Record # "+i+":"); - data = v.getHyperDataObject(i, 1, 1, - dimIndices, - dimSizes, - dimIntervals); - data.dumpData(); - System.out.println(" "); - } - - - System.out.print ("Record #0 for latitude: "); - CDFUtils.printData (latitude.getRecord (0)); - System.out.println (""); - - System.out.print ("Record #1 for longitude: "); - CDFUtils.printData (longitude.getRecord (1)); - System.out.println (""); - - System.out.print ("Record #2 for latitude1: "); - CDFUtils.printData (latitude1.getRecord (2)); - System.out.println (""); - - System.out.print ("Record #0 for foo: "); - CDFUtils.printData (foo.getRecord (0)); - System.out.println ("\n"); - - System.out.print ("1st element of record #0 for latitude: "); - CDFUtils.printData (latitude.getSingleData(0, new long [] {0})); - System.out.println (""); - - System.out.print ("2nd element of record #1 for longitude: "); - CDFUtils.printData (longitude.getSingleData(1, new long [] {1})); - System.out.println (""); - - System.out.print ("3rd element of record #2 for longitude: "); - CDFUtils.printData (latitude1.getSingleData(2, new long [] {2})); - System.out.println (""); - - System.out.print ("1st element of record #0 for foo: "); - CDFUtils.printData (foo.getSingleData (0, new long [] {0})); - System.out.println ("\n"); - - CDFData dataRecord; - System.out.print ("(1,0)th element of record #0 for Time: "); - dataRecord = time.getSingleDataObject(0, new long[] {1,0}); - dataRecord.dumpData(); - - System.out.print ("(1,1)th element of record #0 for Time: "); - Long tValue = (Long) time.getSingleData(0, new long[] {1,1}); - System.out.println (tValue); - - System.out.println ("Record #0 for Time: "); - dataRecord = time.getRecordObject(0L); - dataRecord.dumpData(); - System.out.println ("\n"); - - System.out.println ("Record #0 for Time: "); - long[][] yy = (long [][]) time.getRecord(0L); - for (int x=0;x<3; x++) - for (int j=0;j<2;j++) - System.out.println("["+x+","+j+"] = "+yy[x][j]); - - System.out.println ("\n"); - - Variable var; - var = cdf.getVariable("Temperature2"); - System.out.print ("getScalarData for Temperature2: "); - CDFUtils.printData (var.getScalarData()); - System.out.println ("\n"); - - System.out.print ("getScalarDataObject for Temperature2: "); - dataRecord = var.getScalarDataObject(); - dataRecord.dumpData(); - System.out.println (""); - - var = cdf.getVariable("Temperature"); - System.out.print ("Record #0 for Temperature: "); - CDFUtils.printData (var.getScalarData(0L)); - System.out.println (""); - System.out.print ("Record #1 for Temperature: "); - dataRecord = var.getScalarDataObject(1L); - dataRecord.dumpData(); - System.out.println ("\n"); - - var = cdf.getVariable("Delta"); - System.out.println ("HyperGet for Delta: "); - - /***************************************************/ - /* Read 3 records, starting from record number 0. */ - /* Each record is an 3x2 array. */ - /***************************************************/ - int[][][] xxx = (int [][][]) var.getHyperData (0L, 3L, 1L, - new long[] {0, 0}, - new long[] {3, 2}, - new long[] {1, 1}); - for (int x=0;x<3; x++) { - System.out.println ("\nRecord #"+x+":"); - for (int j=0;j<3;j++) { - for (int k=0;k<2;k++) - System.out.println("["+j+","+k+"] = "+xxx[x][j][k]); - } - } - - /******************************************************/ - /* Read the 2nd and 3rd row of the 3x2 array in the */ - /* 1st and the 3rd record. */ - /******************************************************/ - int[][][] xx = (int [][][]) var.getHyperData (0L, 3L, 2L, - new long[] {1, 0}, - new long[] {2, 2}, - new long[] {1, 1}); - for (int x=0;x<2; x++) { - int recNo = x; - if (x == 1) recNo = x+1; - System.out.println ("\nRecord #"+recNo+ - " (2nd and 3rd row of the 3x2 array):"); - for (int j=0;j<2;j++) { - for (int k=0;k<2;k++) - System.out.println("["+(j+1)+","+k+"] = "+xx[x][j][k]); - } - } - - /******************************************************/ - /* Read the 1st column of the 3x2 array in the */ - /* 1st and the 2nd record. */ - /******************************************************/ - int[][] xx1 = (int [][]) var.getHyperData (0L, 2L, 1L, - new long[] {0, 0}, - new long[] {3, 1}, - new long[] {1, 1}); - for (int x=0; x < 2; x++) { - int recNo = x; - if (x == 1) recNo = 1; - System.out.println ("\nRecord #"+recNo+ - " (1st column of the 3x2 array):"); - for (int j=0; j < 3; j++) - System.out.println("["+j+",0] = "+xx1[x][j]); - } - System.out.println ("\n"); - - /*************************************************************/ - /* Initiate a record read for a group of CDF variables. */ - /* Five (5) variables are involved in this data get function */ - /* and the 6th record for each variable is acquired. */ - /*************************************************************/ - - /* record, the Vector holding the retrieved record objects */ - Vector record; - - String[] strVars = {"Longitude1", // variable names in CDF - "Temp1", - "dp", - "Temp", - "Temperature"}; - - long[] status = new long[6]; - record = cdf.getRecord(5L, strVars, status); - /* record = cdf.getRecord(5L, varIDs, status); */ - - System.out.println ("\nDump of the 6th record from \"Longitude1, "+ - "Temp1, dp, Temp, Temperature\":"); - - /* var: Longitude1 -- CDF_UINT2, dimensionality: 1:[3] */ - System.out.print (" Longitude1 -- "); - for (i = 0; i < 3; i++) - System.out.print (((int[])record.elementAt(0))[i]+" "); - System.out.println (""); - - /* var: Temp1 -- data type: CDF_REAL4 dimensionality: 1:[3] */ - System.out.print (" Temp1 -- "); - for (i = 0; i < 3; i++) - System.out.print (((float[])record.elementAt(1))[i]+" "); - System.out.println (""); - - /* var: dp -- data type: CDF_DOUBLE dimensionality: 1:[3] */ - System.out.print (" dp -- "); - for (i = 0; i < 3; i++) - System.out.print (((double[])record.elementAt(2))[i]+" "); - System.out.println (""); - - /* var: Temp -- data type: CDF_FLOAT dimensionality: 1:[3] */ - System.out.print (" Temp -- "); - for (i = 0; i < 3; i++) - System.out.print (((float[])record.elementAt(3))[i]+" "); - System.out.println (""); - - /* var: Temperature -- CDF_FLOAT, dimensionality: 0:[] */ - System.out.print (" Temperature -- "); - System.out.print (record.elementAt(4)+" "); - System.out.println (""); - - System.out.println("\n\nVariable/Global Attribute Entries"+ - "\n===================================="); - - Attribute test = cdf.getAttribute("Test"), /* global */ - validMin = cdf.getAttribute("validmin"); /* var */ - - Entry tEntry = test.getEntry(15), - vEntry = validMin.getEntry(longitude); - - long attrNum = test.getID(); - Attribute test1 = cdf.getAttribute(attrNum); - - System.out.print (test1.getName()+": \n\t"); - CDFUtils.printData (tEntry.getData()); - System.out.println (""); - - System.out.print ("\nVALIDMIN: \n\tLongitude: "); - CDFUtils.printData (vEntry.getData()); - System.out.println (""); - - System.out.print ("\nVALIDMAX: \n\tLatitude: "); - var = cdf.getVariable("Latitude"); - CDFUtils.printData (var.getEntryData("VALIDMAX")); - System.out.println (""); - - } - - cdf.close(); - } - } catch (Exception e) { - System.out.println (e); - } - } - } -} diff --git a/cdf36_3-dist/cdfjava/examples/test.cdf b/cdf36_3-dist/cdfjava/examples/test.cdf deleted file mode 100644 index ac26feb79cfa49cba4d4e87f1a9e2b7119666bf0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 116284 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 CzKx&& diff --git a/cdf36_3-dist/cdfjava/examples/test1.cdf b/cdf36_3-dist/cdfjava/examples/test1.cdf deleted file mode 100644 index 494b538b848e5ea423d643f06710b5ab31c29be3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3590 zcmd^CO=uHA6rN2RTelk#deI^{=%t0GHYxN+5V~wkDfSOHEglrvWY=~fyD6JZF(6uc zQ+pHyPvYHM4_>twFP`-vp1cWO1aA`Go1g5YDlK03!R~wW=DjzW@0*{^haW^Eq|+fx zv{_KlM$zWs)d$Zh@t`dw(-ERujUZ@*wB*DNEjOaTiRq|SDv#--))=)K+wI8T+=^*o zZf-JPoGeV!71K7aEZAjBx3`^|N7uI6O~2L@6`Y!1_v5zCqZ+R3L@woloF9ra;$iQy*Q#pwNqHK2LG5Jp87-y}q`#db2XWv}jlC z2^?Z#VRd6nm$UkRU4hh0Z@Tu3w=+MvK7%--WDz=U_U33)?bk`4R)v^B9;ZJ5%`g{v zs_OD0D8br{L#0jXjd0VCTdsGv2Artrsj(50KEy=Z<#X0bp!>Pq|A=e$?lOtdiNF6U z*x09`f5)l&Zs3PWe=4o(FzeHN=0jfu0#icggk}mcL#cSpm{!}c-*3oC-jY!8S+%!x0g21VX4>eggIm?eil?ri)cS?+5b z{-4QWUlV0bvXSMQ#AJNB!hdn6;|R|M&_nRZ5inRRZn6)y{FVok;JReRWRas9`iGDD zWE%?r32$Wkq?+fE6-*X3s_BbQ`Co=i-wkK>?aRaWpUB>ABSz=j`H^#vcRw3d T(lWH2XqA$v640t{yPL+)h%~8OFWDFw7#aB`zJ?X4 zoMQ*2S&$fklg{tn`R?pID{t?}LTI-`nOR)`;L5B%EC=8=_@P07%&eU;>?Z4V5|bg5 zjChGyGfArM(5vC9TO)3=Nkw?SlBCt^IgPgCbji(t4$ge)xtMO)l9S0Q-G*?MKPD8(I9Xg zI-g9&(^>y&L}&DJx@f8kG}R$Zf4r#S{JVaNGiX#g70h}m5C|);Iakt|*l4X;uBm3$ z3h>y}DX4?1cL1|L3ivgn(4XZB90?XboZm$Wle+T{uIha%;C4|L;LqSjSBMZg0^idw pug?+oPx82oY5@E;Pv!h~T=&_hfN=ifh34gTFW)ck{`23Zz$d(6*WCaB diff --git a/cdf36_3-dist/cdfjava/examples/testCdfRowMajor.cdf b/cdf36_3-dist/cdfjava/examples/testCdfRowMajor.cdf deleted file mode 100644 index 1b84b3bd499acb698c952a6d022375524a2c7e17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1436 zcmeHGK~KUk6z*nF(|Gg;^au&Vfr-dT$Z&*2g;3yLS(U}Hk*YEqf_g=TJ+3Op!5ZY|eHmq|1&?>ApEPIMT?i&uEV`Bn)$zqYjq{}2D zej*l3lCszJE4b`ch?gu=5#G-wskd6L({SB0a?_!mlOFXwOqXoN$#9;o!r979V6!j^ zWr}rG5(G>HL>Kzec9O?q$p!8S&f{Ai$tt;KB8^xakcQiA*2#o+aJjFFVlIi}5O^Ir z84d@dar>%I$MkYEt*IBNsY7bL!L)+2&-y8jq0ufjThB#Zddal1&T!+kR+*<-S#!Wc zQ>UN`sqO*7e$V0Oj9mYAFQ<`U@x$p|lrX6~|KO_brvz!|eF6OhX?z8S&;ew@zpOq( pcz%@eT~q_$w|U&%|4!>Z`xp?;Utegg);#~(1=cR8fAQ-a_yDz#*V+I8 diff --git a/cdf36_3-dist/cdfjava/jni/cdfNativeLibrary.c b/cdf36_3-dist/cdfjava/jni/cdfNativeLibrary.c deleted file mode 100644 index 1386f5b..0000000 --- a/cdf36_3-dist/cdfjava/jni/cdfNativeLibrary.c +++ /dev/null @@ -1,3074 +0,0 @@ -/* - * $Id: cdfNativeLibrary.c,v 1.1.1.1 2016/10/12 19:21:25 liu Exp $ - */ -/****************************************************************************** -* Copyright 1996-2014 United States Government as represented by the -* Administrator of the National Aeronautics and Space Administration. -* All Rights Reserved. -******************************************************************************/ -/* - * cdfjava.c - * - * This file contains all the JNI C wrappers for the CDF, Attribute, etc - * classes and their children and instances. - * - * C Functions: - * ErrorHandler - Handles all errors and throws appropriate CDFExceptions - * cdfObjectType - Determines the CDF Object's class - * getFuncOrItem - Gets a java/lang/Long out of the command vector and - * returns the CDF function or item. - * getJavaField - Gets the value out of the intance var that the argument - * describes and places it in arg.ptr - * setJavaField - Sets the instance var to the value pointed to by arg.ptr - * argAlloc - Allocated space to arg.ptr to hold the value - * cleanArgument - Cleans up the memory and UTF strings - * ErrHandle - Cleans up the memory and UTF strings before returning an - * error status after a CDFlib call - * cleanGlobalRefs - Cleans the global references - * getItem - Retrieves the elements in a vector that is passed in - * addCDFid - Adds a CDF id to the list of maintained CDF ids - * getCDFid - Returns the CDF id that corresponds to the jid - * removeCDFid - Mark the CDF id as closed - * cleanGlobalRefs - Clear the CDFid link list and free the global - * references if there is none open CDF - * JAVAcdflib - The main method for parsing and executing the command - * vector - * - * JNI methods: - * Java_gsfc_nssdc_cdf_CDFNativeLibrary_cdfNativeLib - * - Main wrapper for the native implementation of the CDF Java APIs - * - * Java_gsfc_nssdc_cdf_util_Epoch_compute - * Java_gsfc_nssdc_cdf_util_Epoch_breakdown - * Java_gsfc_nssdc_cdf_util_Epoch_encode - * Java_gsfc_nssdc_cdf_util_Epoch_encode1 - * Java_gsfc_nssdc_cdf_util_Epoch_encode2 - * Java_gsfc_nssdc_cdf_util_Epoch_encode3 - * Java_gsfc_nssdc_cdf_util_Epoch_encode4 - * Java_gsfc_nssdc_cdf_util_Epoch_encodex - * - * @version 2.0 03/18/05 Removed the code for selection of current CDF, attribute, - * variable or entry when just passed an "NULL_" item. - * It caused a problem under multi-thread environment as the - * selection might not be followed immediately by the intended - * operation of the same thread, thus unexpected results would - * happen. Selections are done as part of operations passed - * to JNI. JNI call is synchronized so only one process is - * allowed in a JVM. - * @version 2.1 06/18/09 Added call ROWtoCOL when hyper-put and COLtoROW - * when hyper-get for multi-dimensional variables - * in a COLUMN-major CDF as the data passed from/to - * Java is ROW-based. - * @version 2.2 05/28/13 Added ErrHandle to free up space(s) before an error - * status is returnedi to avoid memory leak(s). - * - * Author: Mike Liu, RSTX - * Phil Williams. QSS/NASA/GSFC - * - */ - -#include "cdfjava.h" - -#if defined(sun) && !defined(SOLARIS) && !defined(__GCC_NEW_VARARGS__) -# define VARARGS -#else -# define STDARG -#endif - -#if defined(hpux) -# define VA_START(ap) { \ -va_list _apT_; \ -va_start (_apT_); \ -ap = _apT_; \ -} -#else -# define VA_START(ap) va_start(ap) -#endif - -/********************************************* - ** ** - ** Global References ** - ** ** - *********************************************/ - -static char msg[2048]; /* Debug message buffer */ -int mydebug = 0; /* 0 = off, non-zero = on */ -jlong jmax = (jlong) 1 << 32; -jlong jsignmax = ((jlong) 1 << 31) - 1; -jint imax = (jint) 1 << 16; -jint isignmax = (jint) ( 1 << 15) - 1; -jshort smax = (jshort) 1 << 8; -jshort ssignmax = (jshort) (1 << 7) -1; - -static jclass cdfClass = 0, varClass, entryClass, attrClass, dataClass, - excClass; -static jclass byteClass, shortClass, intClass, longClass, floatClass, - doubleClass, strClass, objClass, vecClass; -static jmethodID BvalID, SvalID, IvalID, LvalID, FvalID, DvalID; -static jfieldID cdfStatusID, infoWarnID; -/*static jfieldID backwardEnvVarID; */ -static long envVar; -static long lib_ver; -static char *leapTable; - -/* - A list of currently available CDFs. This list allows multiple cdfs to be - opened at one time. The cdfIDs are maintained in this list and the only - information that is passed back to Java objects is the position in the - list of the current CDF -*/ -cdfIDList *listOfCDFs = NULL; - -/********************************************* - ** ** - ** C Utility Functions ** - ** ** - *********************************************/ - -/* Function: ErrorHandler - * - * Purpose: Throw exceptions back to Java to handle CDF errors - * Depending on the status returned a CDFException will be thrown - * - * Params: - * in: where - string describing where error occured in calling routine. - * in: status - CDF status code. - * in: env - JNI runtime environment - * Returns: - * 1 if no fatal errors had occured - * 0 if a fatal error occured - */ -int ErrorHandler (char *where, long status, JNIEnv *env, jobject myCDF, - int flag) { - - jmethodID cdfExceptionInit; - jthrowable cdfException; - char text[CDF_STATUSTEXT_LEN+128]; - - if (flag == 1) (*env)->SetLongField(env, myCDF, cdfStatusID, (jlong)status); - if (status == CDF_OK) return(1); /* ignore OK */ - - /* Get the message and throw appropriate exception */ - CDFlib (SELECT_, CDF_STATUS_, status, - GET_, STATUS_TEXT_, text, - NULL_); - - if ((status > CDF_OK) || (status == CHECKSUM_ERROR) || - (CDF_OK > status && status >= CDF_WARN)) { - jlong infowarn; - infowarn = (long) (*env)->GetLongField(env, myCDF, infoWarnID); - /* Print warnings or information to the stdout */ - strcat(text, "\n "); - strcat(text, where); - MYDEBUG("ErrorHandler", text); - if (infowarn == 1) printf("%s\n", text); - return(1); - } else { /* Throw the rest */ - strcpy(msg, where); - strcat(msg, " exception occured: "); - strcat(msg, text); - MYDEBUG("ErrorHandler", msg); - - /* if excClass not found then simply return. - This should never happen. */ - if (excClass == 0) return(0); - /* Get the method ID for the constructor CDFException(long) */ - cdfExceptionInit = (*env)->GetMethodID(env, excClass, - "", - "(JLjava/lang/String;)V"); - - /* Build a new cdfException object */ - cdfException = (*env)->NewObject(env, excClass, cdfExceptionInit, - (jlong)status, - (*env)->NewStringUTF(env, where)); - - MYDEBUG("ErrorHandler", "cdfException object created"); - - /* Throw the newly created exception */ - (*env)->Throw(env, cdfException); - - MYDEBUG("ErrorHandler", "cdfException thrown"); - - return(0); - } -} /* end ErrorHandler */ - - -/* Function: cdfObjectType - * - * Purpose: Determine the CDFObject's class and return the - * appropriate flag - * - * Parameters: - * in: env - the Java runtime environment - * in: obj - the Object whose type will be determined - * Returns: - * A "long" integer representing the object type (see cdfjava.h for - * definitions. - */ -long cdfObjectType(JNIEnv *env, jobject obj) { - - if (obj == NULL) { - (*env)->ThrowNew(env, excClass, "cdfObject is null"); - return -1L; - } - - if ((*env)->IsInstanceOf(env, obj, cdfClass)) - return CDF_CLASS; - - else if ((*env)->IsInstanceOf(env, obj, varClass)) - return VAR_CLASS; - - else if ((*env)->IsInstanceOf(env, obj, dataClass)) - return DATA_CLASS; - - else if ((*env)->IsInstanceOf(env, obj, entryClass)) - return ENTRY_CLASS; - - else if ((*env)->IsInstanceOf(env, obj, attrClass)) - return ATTR_CLASS; - - else - return -1L; /* Unknown class */ -} - -/* Function: getFuncOrItem - * - * Purpose: parse the next element in the command vector and return - * the CDF function or item at that location. - * Parameters: - * in: env - the Java runtime environment - * in: obj - a Long object whose value should correspond to a CDF function - * or CDF item - * out: funcOrItem - the CDF function or item that the object represents - * Returns: - * CDFstatus - */ -CDFstatus getFuncOrItem(JNIEnv *env, jobject obj, long *funcOrItem) { - - if ((*env)->IsInstanceOf(env, obj, longClass) == JNI_FALSE){ - return(BAD_FNC_OR_ITEM); - } - - *funcOrItem = (long)((*env)->CallLongMethod(env, obj, LvalID)); - - return(CDF_OK); -} - -/* Function: getJavaField - * - * Purpose: Move the value from the Java's instance variable - * to arg.ptr for use in C - * Parameters: - * env - Java VM pointer - * arg - A pointer to an argument structure - * Returns: - * none (should be CDFstatus) - */ -void getJavaField(JNIEnv *env, argument *arg) { - - jthrowable exc; - jobject tempObject; - jarray arrayObject; - jbyte *bbody; - jshort *sbody; - jint *ibody; - jlong *jbody; - jfloat *fbody; - jdouble *dbody; - char dummySig[50]; - char dummyCSig[50]; - - if (arg->isEntryorVariableData) { - if (arg->isArray) { - strcpy(dummySig, arg->datasig+1); /* Skip "[" */ - strcpy(dummyCSig, arg->Csig+1); - } else { - strcpy(dummySig, arg->datasig); - strcpy(dummyCSig, arg->Csig); - } - - } else { - if (arg->isArray) - strcpy(dummySig, arg->sig+1); /* Skip "[" */ - else - strcpy(dummySig, arg->sig); - } - sprintf(msg,"dummySig = %s", dummySig); - MYDEBUG("getJavaField", msg); - switch (dummySig[0]) { - case 'Z': /* boolean */ - break; - - case 'B': /* byte */ - if (arg->isArray) { - arrayObject = (*env)->GetObjectField(env, arg->myObject, arg->id); - bbody = (*env)->GetByteArrayElements(env, (jarray)arrayObject, 0); - memcpy (arg->ptr, bbody, sizeof(char)*arg->length); - (*env)->ReleaseByteArrayElements(env, - (jarray)arrayObject, bbody, 0); - } else { - *(char *)arg->ptr - = (*env)->GetByteField(env, arg->myObject, arg->id); - } - break; - - case 'C': /* char */ - break; - - case 'S': /* short */ - if (arg->isArray) { - arrayObject = (*env)->GetObjectField(env, arg->myObject, arg->id); - sbody = (*env)->GetShortArrayElements(env, (jarray)arrayObject, 0); - if (strncmp((char *)dummyCSig, "S", 1) == 0) - memcpy (arg->ptr, sbody, sizeof(short)*arg->length); - else { /* Data type is CDF_UINT1 */ - int i; - for (i=0; i< arg->length; i++) - if (sbody[i] <= ssignmax) - *((jbyte *) arg->ptr + i) = (jbyte) sbody[i]; - else - *((jbyte *) arg->ptr + i) = (jbyte) (sbody[i] - smax); - } - (*env)->ReleaseShortArrayElements(env, - (jarray)arrayObject, sbody, 0); - } else { - if (strncmp((char *)dummyCSig, "S", 1) == 0) - *(short *)arg->ptr - = (*env)->GetShortField(env, arg->myObject, arg->id); - else - *(jbyte *)arg->ptr - = (jbyte) (*env)->GetShortField(env, arg->myObject, arg->id); - } - break; - - case 'I': /* integer */ - if (arg->isArray) { - arrayObject = (*env)->GetObjectField(env, arg->myObject, arg->id); - ibody = (*env)->GetIntArrayElements(env, (jarray)arrayObject, 0); - if (strncmp((char *)dummyCSig, "I", 1) == 0) - memcpy (arg->ptr, ibody, sizeof(jint)*arg->length); - else { /* Data type is CDF_UINT2 */ - int i; - for (i=0; i< arg->length; i++) - if (ibody[i] <= isignmax) - *((jshort *) arg->ptr + i) = (jshort) ibody[i]; - else - *((jshort *) arg->ptr + i) = (jshort) (ibody[i] - imax); - } - (*env)->ReleaseIntArrayElements(env, - (jarray)arrayObject, ibody, 0); - } else { - if (strncmp((char *)dummyCSig, "I", 1) == 0) - *(jint *)arg->ptr - = (*env)->GetIntField(env, arg->myObject, arg->id); - else /* Data type is CDF_UINT2 */ - *(jshort *)arg->ptr - = (jshort) (*env)->GetIntField(env, arg->myObject, arg->id); - } - break; - - case 'J': /* long */ - if (arg->isArray) { - int i; - arrayObject = (*env)->GetObjectField(env, arg->myObject, arg->id); - jbody = (*env)->GetLongArrayElements(env, (jarray)arrayObject, 0); - if (!arg->isEntryorVariableData) { - for (i=0; i< arg->length; i++) - *((long *) arg->ptr + i) = (long) jbody[i]; - } else { - if (strncmp((char *)dummyCSig, "J", 1) == 0) { /* CDF_INT8 */ - memcpy (arg->ptr, jbody, sizeof(jlong)*arg->length);; - } else { /* Data type is CDF_UINT4 */ - for (i=0; i< arg->length; i++) - if (jbody[i] <= jsignmax) - *((jint *) arg->ptr + i) = (jint) jbody[i]; - else - *((jint *) arg->ptr + i) = (jint) (jbody[i] - jmax); - } - } - (*env)->ReleaseLongArrayElements(env, - (jarray)arrayObject, jbody, 0); - } else { - if (!arg->isEntryorVariableData) - *(long *)arg->ptr - = (long) (*env)->GetLongField(env, arg->myObject, arg->id); - else { - if (strncmp((char *)dummyCSig, "J", 1) == 0) - *(jlong *)arg->ptr - = (jlong) (*env)->GetLongField(env, arg->myObject, arg->id); - else - *(jint *)arg->ptr - = (jint) (*env)->GetLongField(env, arg->myObject, arg->id); - } - } - sprintf (msg, "field = %s value(long) = %ld ", - arg->name,*(long *)arg->ptr); - MYDEBUG("getJavaField", msg); - break; - - case 'F': /* float */ - if (arg->isArray) { - arrayObject = (*env)->GetObjectField(env, arg->myObject, arg->id); - fbody = (*env)->GetFloatArrayElements(env, (jarray)arrayObject, 0); - memcpy (arg->ptr, fbody, sizeof(float)*arg->length); - (*env)->ReleaseFloatArrayElements(env, - (jarray)arrayObject, fbody, 0); - } else { - *(float *)arg->ptr - = (*env)->GetFloatField(env, arg->myObject, arg->id); - } - break; - - case 'D': /* double */ - if (arg->isArray) { - arrayObject = (*env)->GetObjectField(env, arg->myObject, arg->id); - dbody = (*env)->GetDoubleArrayElements(env, (jarray)arrayObject, 0); - memcpy (arg->ptr, dbody, sizeof(double)*arg->length); - (*env)->ReleaseDoubleArrayElements(env, - (jarray)arrayObject, dbody, 0); - } else { - *(double *)arg->ptr - = (*env)->GetDoubleField(env, arg->myObject, arg->id); - } - break; - - case 'L': /* object */ - if (strcmp(dummySig,"Ljava/lang/String;") == 0) { - if (arg->isArray) { /* N/A */ - } else { - arg->tempString = - (*env)->GetObjectField(env, arg->myObject, arg->id); - if (arg->ptr != NULL) free (arg->ptr); - arg->ptr = (void *) - (*env)->GetStringUTFChars(env, arg->tempString, 0); -/* Have to comment out the following line as it causes problems if the combined - string is bigger than 2048, the size of msg buffer. */ -/* sprintf(msg, "field = %s value(String) = %s", - arg->name,(char *)arg->ptr); */ - MYDEBUG("getJavaField", msg); - } - - } else if (strcmp(dummySig, "Ljava/lang/Byte;") == 0) { - tempObject = (*env)->GetObjectField(env, arg->myObject, arg->id); - *(char *)arg->ptr - = (*env)->CallByteMethod(env, tempObject, BvalID); - - } else if (strcmp(dummySig, "Ljava/lang/Short;") == 0) { - tempObject = (*env)->GetObjectField(env, arg->myObject, arg->id); - if (strncmp((char *)dummyCSig, "S", 1) == 0) /* CDF_INT2 */ - *(short *)arg->ptr - = (*env)->CallShortMethod(env, tempObject, SvalID); - else /* CDF_UINT1 */ - *(char *)arg->ptr - = (jbyte) (*env)->CallShortMethod(env, tempObject, SvalID); - - } else if (strcmp(dummySig, "Ljava/lang/Integer;") == 0) { - tempObject = (*env)->GetObjectField(env, arg->myObject, arg->id); - if (strncmp((char *)dummyCSig, "I", 1) == 0) /* CDF_INT4 */ - *(jint *)arg->ptr - = (jint) (*env)->CallIntMethod(env, tempObject, IvalID); - else /* CDF_UINT2 */ - *(short *)arg->ptr - = (short) (*env)->CallIntMethod(env, tempObject, IvalID); - - } else if (strcmp(dummySig, "Ljava/lang/Long;") == 0) { - tempObject = (*env)->GetObjectField(env, arg->myObject, arg->id); - if (!arg->isEntryorVariableData) - *(long *)arg->ptr - = (long) (*env)->CallLongMethod(env, tempObject, LvalID); - else { - if (strncmp((char *)dummyCSig, "J", 1) == 0) /* CDF_INT8 */ - *(jlong *)arg->ptr - = (jlong) (*env)->CallLongMethod(env, tempObject, LvalID); - else /* CDF_UINT4 */ - *(jint *)arg->ptr - = (jint) (*env)->CallLongMethod(env, tempObject, LvalID); - } - } else if (strcmp(dummySig, "Ljava/lang/Float;") == 0) { - tempObject = (*env)->GetObjectField(env, arg->myObject, arg->id); - *(float *)arg->ptr - = (*env)->CallFloatMethod(env, tempObject, FvalID); - - } else if (strcmp(dummySig, "Ljava/lang/Double;") == 0) { - tempObject = (*env)->GetObjectField(env, arg->myObject, arg->id); - *(double *)arg->ptr - = (*env)->CallDoubleMethod(env, tempObject, DvalID); - } - break; - - case '[': /* array */ - break; - - default: - MYDEBUG("getJavaField","unknown type"); - } - - exc = (*env)->ExceptionOccurred(env); - if (exc) { - printf("Exception in getJavaField\n"); - (*env)->ExceptionDescribe(env); - (*env)->ExceptionClear(env); - } -} /* getJavaField */ - -/* Function: setJavaField - * - * Purpose: Move the value out of the arg.ptr to the - * Java's instance variable. - * - * Parameters: - * env - Java VM pointer - * arg - An argument structure - * Returns: - * none (Should be CDFStatus) - * - */ -void setJavaField(JNIEnv *env, argument arg) { - - jthrowable exc; - jobject tempObject; - jmethodID tempMethod; - jlong *jbody; - jint *ibody; - jshort *sbody; - jbyte *bbody; - jfloat *fbody; - jdouble *dbody; - - int i; - char dummySig[50]; - char dummyCSig[50]; - - if (arg.isArray) MYDEBUG("setJavaField", "it is an array"); - if (arg.isEntryorVariableData) MYDEBUG("setJavaField", "it is an entry/variable data"); - - if (arg.isArray) - if (arg.isEntryorVariableData) { - strcpy(dummySig, arg.datasig+1); /* Skip "[" */ - strcpy(dummyCSig, arg.Csig+1); - } else - strcpy(dummySig, arg.sig+1); /* Skip "[" */ - else - if (arg.isEntryorVariableData) { - strcpy(dummySig, arg.datasig); - strcpy(dummyCSig, arg.Csig); - } else - strcpy(dummySig, arg.sig); - - sprintf(msg, "dummySig = %s", dummySig); - MYDEBUG("setJavaField", msg); - switch (dummySig[0]) { - case 'Z': /* boolean */ - break; - - case 'B': /* byte */ - if (arg.isArray) { - sprintf(msg,"setting byte array"); - tempObject = (*env)->GetObjectField(env, arg.myObject, arg.id); - bbody = - (*env)->GetByteArrayElements(env, (jbyteArray)tempObject, 0); - memcpy (bbody, (jbyte *) arg.ptr, arg.length); - (*env)->ReleaseByteArrayElements(env, tempObject, bbody, 0); - } else { - sprintf(msg,"setting byte var"); - (*env)->SetByteField(env, arg.myObject, arg.id, *(char *) arg.ptr); - } - break; - - case 'C': /* char */ - break; - - case 'S': /* short */ - if (arg.isArray) { - sprintf(msg,"setting short array"); - tempObject = (*env)->GetObjectField(env, arg.myObject, arg.id); - sbody = (*env)->GetShortArrayElements( - env, (jshortArray)tempObject, 0); - if (strncmp((char *)dummyCSig, "S", 1) == 0) { - memcpy (sbody, (jbyte *)arg.ptr, sizeof(short)*arg.length); - } else { - for (i=0; i< arg.length; i++) { - if (*((jbyte *) arg.ptr + i) >= 0) - sbody[i] = (jshort) *((jbyte *) arg.ptr + i); - else - sbody[i] = smax + (jshort) *((jbyte *) arg.ptr + i); - } - } - (*env)->ReleaseShortArrayElements(env, tempObject, sbody, 0); - } else { - sprintf(msg,"setting short var"); - if (strncmp((char *)dummyCSig, "S", 1) == 0) - (*env)->SetShortField (env, arg.myObject, arg.id, - *(short *)arg.ptr); - else { - jshort ss; - if (*(jbyte *) arg.ptr >= 0) - ss = (jshort) *(jbyte *) arg.ptr; - else - ss = smax + (jshort) *(jbyte *) arg.ptr; - (*env)->SetShortField (env, arg.myObject, arg.id, ss); - } - } - break; - - case 'I': /* integer */ - if (arg.isArray) { - sprintf(msg,"setting int array"); - tempObject = (*env)->GetObjectField(env, arg.myObject, arg.id); - ibody = (*env)->GetIntArrayElements(env, (jintArray)tempObject, 0); - if (strncmp((char *)dummyCSig, "I", 1) == 0) { - for (i=0; i< arg.length; i++) - ibody[i] = *((jint *) arg.ptr + i); - } else { - for (i=0; i< arg.length; i++) { - if (*((jshort *) arg.ptr + i) >= 0) - ibody[i] = (jint) *((jshort *) arg.ptr + i); - else - ibody[i] = imax + (jint) *((jshort *) arg.ptr + i); - } - } - (*env)->ReleaseIntArrayElements(env, tempObject, ibody, 0); - } else { - if (strncmp((char *)dummyCSig, "I", 1) == 0) - (*env)->SetIntField (env, arg.myObject, arg.id, - *(jint *) arg.ptr); - else { - jint ii = 0; - if (*(jshort *) arg.ptr >= 0) - ii = (jint) *(jshort *) arg.ptr; - else - ii = imax + (jint) *(jshort *) arg.ptr; - (*env)->SetIntField (env, arg.myObject, arg.id, ii); - } - } - break; - - case 'J': /* long */ - if (arg.isArray) { - tempObject = (*env)->GetObjectField(env, arg.myObject, arg.id); - jbody = (*env)->GetLongArrayElements(env, (jlongArray)tempObject, 0); - if (!arg.isEntryorVariableData) { - for (i=0; i= 0) - jbody[i] = (jlong) *((jint *) arg.ptr + i); - else - jbody[i] = jmax + (jlong) *((jint *) arg.ptr + i); - } - } - } - (*env)->ReleaseLongArrayElements(env, tempObject, jbody, 0); - } else { - sprintf(msg,"name = %s; sig = %s; val = %ld", - arg.name, arg.sig, *(long *) arg.ptr); - if (!arg.isEntryorVariableData) { - (*env)->SetLongField (env, arg.myObject, arg.id, - (jlong) (*(long *) arg.ptr)); - } else { - if (strncmp((char *)dummyCSig, "J", 1) == 0) - (*env)->SetLongField (env, arg.myObject, arg.id, - (jlong) (*(jlong *) arg.ptr)); - else { - jlong jj = 0; - if (*(jint *) arg.ptr >= 0) - jj = (jlong) *(jint *) arg.ptr; - else - jj = jmax + (jlong) *(jint *) arg.ptr; - (*env)->SetLongField (env, arg.myObject, arg.id, jj); - } - } - } - break; - - case 'F': /* float */ - if (arg.isArray) { - sprintf(msg,"setting float array"); - tempObject = (*env)->GetObjectField(env, arg.myObject, arg.id); - fbody = (*env)->GetFloatArrayElements (env, - (jfloatArray)tempObject, 0); - for (i=0; iReleaseFloatArrayElements(env, tempObject, fbody, 0); - } else { - sprintf(msg,"setting float var"); - (*env)->SetFloatField (env, arg.myObject, arg.id, - (jfloat) *(float *) arg.ptr); - } - break; - - case 'D': /* double */ - if (arg.isArray) { - sprintf(msg,"setting double array"); - tempObject = (*env)->GetObjectField(env, arg.myObject, arg.id); - dbody = (*env)->GetDoubleArrayElements(env, - (jdoubleArray)tempObject, 0); - for (i=0; iReleaseDoubleArrayElements(env, tempObject, dbody, 0); - } else { - sprintf(msg,"setting double var"); - (*env)->SetDoubleField (env, arg.myObject, arg.id, - (jdouble) *(double *) arg.ptr); - } - break; - - case 'L': /* object */ - if (strcmp(dummySig,"Ljava/lang/String;") == 0) { - if (arg.ptr != NULL) { - ((char *)arg.ptr)[arg.length - 1] = '\0'; -/* Have to comment out the following line as it causes problems if the combined - string is bigger than 2048, the size of msg buffer. */ -/* sprintf(msg,"name = %s; sig = %s val = %s\n", - arg.name, arg.sig, ((char *) arg.ptr)); */ - (*env)->SetObjectField(env, arg.myObject, arg.id, - (*env)->NewStringUTF(env, (char *) arg.ptr)); - } - } else if (strcmp(dummySig, "Ljava/lang/Byte;") == 0) { - sprintf(msg,"building byte object"); - tempMethod = (*env)->GetMethodID(env, byteClass, "", "(B)V"); - tempObject = (*env)->NewObject(env, byteClass, tempMethod, - (jbyte) *(char *) arg.ptr); - (*env)->SetObjectField(env, arg.myObject, arg.id, tempObject); - - } else if (strcmp(dummySig, "Ljava/lang/Short;") == 0) { - sprintf(msg,"building short object"); - tempMethod = (*env)->GetMethodID(env, shortClass, "", "(S)V"); - if (!arg.isEntryorVariableData || - strncmp((char *)dummyCSig, "S", 1) == 0) { - tempObject = (*env)->NewObject(env, shortClass, tempMethod, - *(short *) arg.ptr); - } else { - jshort ss = 0; - if (*(jbyte *)arg.ptr >= 0) - ss = (jshort) *(jbyte *) arg.ptr; - else - ss = smax + (jshort) *(jbyte *) arg.ptr; - tempObject = (*env)->NewObject(env, shortClass, tempMethod, ss); - } - (*env)->SetObjectField(env, arg.myObject, arg.id, tempObject); - - } else if (strcmp(dummySig, "Ljava/lang/Integer;") == 0) { - sprintf(msg,"building int object"); - tempMethod = (*env)->GetMethodID(env, intClass, "", "(I)V"); - if (!arg.isEntryorVariableData || - strncmp((char *)dummyCSig, "I", 1) == 0) { - tempObject = (*env)->NewObject (env, intClass, tempMethod, - *(jint *) arg.ptr); - } else { - jint ii = 0; - if (*(jshort *) arg.ptr >= 0) - ii = (jint) *(jshort *) arg.ptr; - else - ii = imax + (jint) *(jshort *) arg.ptr; - tempObject = (*env)->NewObject (env, intClass, tempMethod, ii); - } - (*env)->SetObjectField(env, arg.myObject, arg.id, tempObject); - - } else if (strcmp(dummySig, "Ljava/lang/Long;") == 0) { - sprintf(msg,"building long object"); - tempMethod = (*env)->GetMethodID(env, longClass, "", "(J)V"); - if (!arg.isEntryorVariableData || - strncmp((char *)dummyCSig, "J", 1) == 0) { - tempObject = (*env)->NewObject (env, longClass, tempMethod, - (jlong) (*(jlong *) arg.ptr)); - } else { - jlong jj; - if (*(jint*)arg.ptr >= 0) - jj = (jlong) *(jint*)arg.ptr; - else { - jj = jmax + (jlong) *(jint*)arg.ptr; - } - tempObject = (*env)->NewObject (env, longClass, tempMethod, jj); - } - (*env)->SetObjectField(env, arg.myObject, arg.id, tempObject); - - } else if (strcmp(dummySig, "Ljava/lang/Float;") == 0) { - sprintf(msg,"building float object"); - tempMethod = (*env)->GetMethodID(env, floatClass, "", "(F)V"); - tempObject = (*env)->NewObject(env, floatClass, tempMethod, - (jfloat) *(float *) arg.ptr); - (*env)->SetObjectField(env, arg.myObject, arg.id, tempObject); - - } else if (strcmp(dummySig, "Ljava/lang/Double;") == 0) { - sprintf(msg,"building double object"); - tempMethod = (*env)->GetMethodID(env, doubleClass, "", "(D)V"); - tempObject = (*env)->NewObject(env, doubleClass, tempMethod, - (jdouble) *(double *) arg.ptr); - (*env)->SetObjectField(env, arg.myObject, arg.id, tempObject); - } - break; - - case '[': /* array */ - break; - - default: - sprintf(msg, "Unknown type; sig = %s",arg.sig); - } - MYDEBUG("setJavaField",msg); - - exc = (*env)->ExceptionOccurred(env); - if (exc) { - printf("Exception in setJavaField\n"); - (*env)->ExceptionDescribe(env); - (*env)->ExceptionClear(env); - } -} /* setJavaField */ - - -/* Function: argAlloc - * - * Purpose: determines the size needed for the pointer and mallocs - * the appropriate space. - * - * Parameters: - * arg - the argument to malloc space for the variable - * Returns: - * CDFStatus - success or failure - */ -CDFstatus argAlloc(JNIEnv *env, const char *signature, argument *arg) { - - int i; - CDFstatus status = CDF_OK; - - if (arg->length == -1) arg->length = 1; - - switch (signature[0]) { - case 'Z': /* boolean */ - break; - - case 'B': /* byte */ - sprintf(msg,"allocated space for %d byte variable(s)", (int) arg->length); - MYDEBUG("argAlloc",msg); - arg->ptr = (char *) malloc (sizeof(char) * arg->length); - for (i=0;ilength;i++) - *((char *)arg->ptr + i) = 0; - break; - - case 'C': /* char */ - sprintf(msg,"allocated space for %d char variable(s)", (int) arg->length); - MYDEBUG("argAlloc",msg); - arg->ptr = (char *) malloc (sizeof(char) * arg->length); - break; - - case 'S': /* short */ - sprintf(msg,"allocated space for %d short variable(s)", (int) arg->length); - MYDEBUG("argAlloc",msg); - arg->ptr = (short *) malloc (sizeof(short) * arg->length); - for (i=0; i < arg->length; i++) - *((short *)arg->ptr + i) = (short)0; - break; - - case 'I': /* integer */ - sprintf(msg,"allocated space for %d int variable(s)", (int) arg->length); - MYDEBUG("argAlloc",msg); - arg->ptr = (jint *) malloc (sizeof(jint) * arg->length); - for (i=0; i < arg->length; i++) - *((jint *)arg->ptr + i) = (jint) 0; - break; - - case 'J': /* long */ - sprintf(msg,"allocated space for %d long variable(s)", (int) arg->length); - MYDEBUG("argAlloc",msg); - if (!arg->isEntryorVariableData) { - arg->ptr = (long *) malloc (sizeof(long) * arg->length); - for (i=0; i < arg->length; i++) - *((long *)arg->ptr + i) = (long) 0; - } else { - arg->ptr = (jlong *) malloc (sizeof(jlong) * arg->length); - for (i=0; i < arg->length; i++) - *((jlong *)arg->ptr + i) = (jlong) 0; - } - break; - - case 'F': /* float */ - sprintf(msg,"allocated space for %d float variable(s)", (int) arg->length); - MYDEBUG("argAlloc",msg); - arg->ptr = (float *) malloc (sizeof(float) * arg->length); - for (i=0; i < arg->length; i++) - *((float *)arg->ptr + i) = 0.0; - break; - - case 'D': /* double */ - sprintf(msg,"allocated space for %d double variable(s)", (int) arg->length); - MYDEBUG("argAlloc",msg); - arg->ptr = (double *) malloc (sizeof(double) * arg->length); - for (i=0; i < arg->length; i++) - *((double *)arg->ptr + i) = 0; - break; - - case 'L': /* object */ - if (strcmp(signature,"Ljava/lang/String;") == 0) { - sprintf(msg,"allocated space for a %d long string", (int) arg->length); - MYDEBUG("argAlloc",msg); - arg->ptr = (void *) malloc (sizeof(char) * (arg->length)); - - } else if (strcmp(signature,"Ljava/lang/Byte;") == 0) { - sprintf(msg,"allocated space for %d byte object", (int) arg->length); - MYDEBUG("argAlloc",msg); - arg->ptr = (char *) malloc (sizeof(char) * arg->length); - for (i=0; i < arg->length; i++) - *((char *)arg->ptr + i) = 0; - - } else if (strcmp(signature,"Ljava/lang/Short;") == 0) { - sprintf(msg,"allocated space for %d short object", (int) arg->length); - MYDEBUG("argAlloc",msg); - arg->ptr = (short *) malloc (sizeof(short) * arg->length); - for (i=0; i < arg->length; i++) - *((short *)arg->ptr + i) = 0; - - } else if (strcmp(signature,"Ljava/lang/Integer;") == 0) { - sprintf(msg,"allocated space for %d int object", (int) arg->length); - MYDEBUG("argAlloc",msg); - arg->ptr = (jint *) malloc (sizeof(jint) * arg->length); - for (i=0; i < arg->length; i++) - *((jint *)arg->ptr + i) = 0; - - } else if (strcmp(signature,"Ljava/lang/Long;") == 0) { - sprintf(msg,"allocated space for %d long object", (int) arg->length); - MYDEBUG("argAlloc",msg); - if (!arg->isEntryorVariableData) { - arg->ptr = (long *) malloc (sizeof(long) * arg->length); - for (i=0; i < arg->length; i++) - *((long *)arg->ptr + i) = (long) 0; - } else { - arg->ptr = (jlong *) malloc (sizeof(jlong) * arg->length); - for (i=0; i < arg->length; i++) - *((jlong *)arg->ptr + i) = (jlong) 0; - } - - } else if (strcmp(signature,"Ljava/lang/Float;") == 0) { - sprintf(msg,"allocated space for %d float object", (int) arg->length); - MYDEBUG("argAlloc",msg); - arg->ptr = (float *) malloc (sizeof(float) * arg->length); - for (i=0; i < arg->length; i++) - *((float *)arg->ptr + i) = 0.0; - - } else if (strcmp(signature,"Ljava/lang/Double;") == 0) { - sprintf(msg,"allocated space for %d double object", (int) arg->length); - MYDEBUG("argAlloc",msg); - arg->ptr = (double *) malloc (sizeof(double) * arg->length); - for (i=0; i < arg->length; i++) - *((double *)arg->ptr + i) = 0; - } - break; - - case '[': /* array */ - arg->isArray = JNI_TRUE; - arg->length = (*env)->GetArrayLength(env, - (jarray)(*env)->GetObjectField(env, - arg->myObject, - arg->id)); - MYDEBUG("argAlloc", "calling self"); - status = argAlloc(env, signature+1, arg); /* Recursive call */ - break; - - default: - MYDEBUG("argAlloc","unknown type"); - } - - if (arg->ptr == NULL) { - MYDEBUG("argAlloc","malloc failed"); - return(BAD_MALLOC); - } - - return(status); -} - -/* Function: cleanArgument - * - * Purpose: clean up the memory and UTF strings used by the argument - * - * Parameters: - * env - The Java runtime environment - * arg - The argument to clean - * Returns: - * none - */ -void cleanArgument(JNIEnv *env, argument *arg) { - /* - * tempString is only used for certain String arguments. If it was used - * free it. - */ - - if ((!strcmp(arg->sig,"Ljava/lang/String;")) && arg->tempString != NULL) - /* a Java string variable like name or path */ - (*env)->ReleaseStringUTFChars(env, arg->tempString, (char *)arg->ptr); - else if (arg->datasig != NULL && - ((!strcmp(arg->datasig,"Ljava/lang/String;")) && arg->tempString != NULL)) - /* a Java data which contains a string value */ - (*env)->ReleaseStringUTFChars(env, arg->tempString, (char *)arg->ptr); - else /* other data type: a non-string Java variable or a non-string data object */ - free (arg->ptr); - - /* Free the name */ - (*env)->ReleaseStringUTFChars(env, arg->nameObject, arg->name); - (*env)->ReleaseStringUTFChars(env, arg->sigObject, arg->sig); - if (arg->isEntryorVariableData) - (*env)->ReleaseStringUTFChars(env, arg->dsObject, arg->datasig); - /* reinitialize to allow reuse */ - arg->ptr = NULL; - arg->isArray = JNI_FALSE; - arg->isEntryorVariableData = JNI_FALSE; - arg->length = -1; - arg->tempString = NULL; - -} -/* Function: ErrHandle - * - * Purpose: clean up the memory used by the argument(s) when - * an error that forces the function to return - * - * Parameters: - * status - The return status - * env - The Java runtime environment - * arg - The variable list of argument(s) to clean - * NULL - The end of variable argument list - * Returns: - * status - */ -#if defined(STDARG) -static CDFstatus ErrHandle (CDFstatus status, JNIEnv *env, ...) -#else -static CDFstatus ErrHandle (CDFstatus status, JNIEnv *env, va_alist) -va_dcl -#endif -{ - va_list ap; -#if defined(STDARG) - va_start (ap, env); -#else - VA_START (ap); -#endif - for (;;) { - argument *arg = va_arg (ap, argument *); - if (arg == NULL) { - va_end (ap); - return status; - } else - cleanArgument(env, arg); - } -} - - -/* Function: getItem - * - * Purpose: Setup the argument structure for the obj - * - * Parameters: - * env - the JNI runtime environment - * obj - the object for which the argument is setup. - * parent - the parent of the obj - * arg - a pointer to a blank argument structure - * - * Returns: - * CDFstatus - success or failure - */ -CDFstatus getItem(JNIEnv *env, jobject theCDF, jobject itemObj, jobject parent, argument *arg) { - - jobject temp1, temp2, temp3; - jclass parentClass = (*env)->GetObjectClass(env, parent); - jmethodID - vElemID = (*env)->GetMethodID(env, vecClass, "elementAt", - "(I)Ljava/lang/Object;"); - jthrowable exc; - CDFstatus status; - long dataType; - - /********************/ - /* Initialize */ - /********************/ - arg->isArray = JNI_FALSE; - arg->tempString = NULL; - arg->myObject = parent; - arg->datasig = NULL; - - MYDEBUG("getItem", "completed initialization."); - - /*******************************************/ - /* Make sure that the argument is a Vector */ - /*******************************************/ - if (((*env)->IsInstanceOf(env, itemObj, vecClass)) == JNI_FALSE) { - MYDEBUG("getItem","itemObj not a vector"); - return(BAD_FNC_OR_ITEM); - } - /**********************************************************/ - /* Get the name of the instance var out of the arg object */ - /**********************************************************/ - temp1 = (*env)->CallObjectMethod(env, itemObj, vElemID, 0); - exc = (*env)->ExceptionOccurred(env); - if (exc) { - printf("Exception in getItem\n"); - (*env)->ExceptionDescribe(env); - (*env)->ExceptionClear(env); - return(BAD_FNC_OR_ITEM); - } - arg->nameObject = temp1; - arg->name = (*env)->GetStringUTFChars(env, arg->nameObject, 0); - /*******************************************/ - /* Get the signature out of the arg object */ - /*******************************************/ - temp2 = (*env)->CallObjectMethod(env, itemObj, vElemID, 1); - exc = (*env)->ExceptionOccurred(env); - if (exc) { - printf("Exception in getItem2\n"); - (*env)->ExceptionDescribe(env); - (*env)->ExceptionClear(env); - return(BAD_FNC_OR_ITEM); - } - arg->sigObject = temp2; - arg->sig = (*env)->GetStringUTFChars(env, arg->sigObject, 0); - sprintf(msg,"(1) name = %s sig = %s", arg->name, arg->sig); - MYDEBUG("getItem", msg); - - /*********************************************/ - /* Get the field id of the instance variable */ - /*********************************************/ - arg->id = (*env)->GetFieldID(env, parentClass, arg->name, arg->sig); - CHECKNULL("field ID", arg->id); - MYDEBUG("getItem", "got Field ID"); - - arg->isEntryorVariableData = - (((*env)->IsAssignableFrom(env, dataClass, parentClass) && - (strcmp(arg->name, "_data") == 0)) || - ((*env)->IsAssignableFrom(env, entryClass, parentClass) && - (strcmp(arg->name, "data") == 0)) || - ((*env)->IsAssignableFrom(env, varClass, parentClass) && - (strcmp(arg->name, "padValue") == 0))); - if (arg->isEntryorVariableData) { - MYDEBUG("getItem", "got entry/variable data/pad value"); - temp3 = - (*env)->GetObjectField(env, parent, - (*env)->GetFieldID(env, parentClass, - "dataSignature", - "Ljava/lang/String;")); - exc = (*env)->ExceptionOccurred(env); - if (exc) { - printf("Exception in getItem 3\n"); - (*env)->ExceptionDescribe(env); - (*env)->ExceptionClear(env); - return(BAD_FNC_OR_ITEM); - } - arg->dsObject = temp3; - arg->datasig = (*env)->GetStringUTFChars(env, arg->dsObject, 0); - sprintf(msg,"datasig = %s", arg->datasig); - dataType = (long) (*env)->GetLongField(env, parent, - (*env)->GetFieldID(env, - parentClass, - "dataType", - "J")); - if (dataType == CDF_CHAR || dataType == CDF_UCHAR) - if (strncmp(arg->datasig, "[", 1) == 0) - strcpy(arg->Csig, "[B"); - else - strcpy(arg->Csig, "Ljava/lang/String;"); - - else if (dataType == CDF_BYTE || dataType == CDF_INT1 || - dataType == CDF_UINT1) - if (strncmp(arg->datasig, "[", 1) == 0) - strcpy(arg->Csig, "[B"); - else - strcpy(arg->Csig, "B"); - - else if (dataType == CDF_INT2 || dataType == CDF_UINT2) - if (strncmp(arg->datasig, "[", 1) == 0) - strcpy(arg->Csig, "[S"); - else - strcpy(arg->Csig, "S"); - - else if (dataType == CDF_INT4 || dataType == CDF_UINT4) - if (strncmp(arg->datasig, "[", 1) == 0) - strcpy(arg->Csig, "[I"); - else - strcpy(arg->Csig, "I"); - - else if (dataType == CDF_INT8 || dataType == CDF_TIME_TT2000) - if (strncmp(arg->datasig, "[", 1) == 0) - strcpy(arg->Csig, "[J"); - else - strcpy(arg->Csig, "J"); - - else if (dataType == CDF_REAL4 || dataType == CDF_FLOAT) - if (strncmp(arg->datasig, "[", 1) == 0) - strcpy(arg->Csig, "[F"); - else - strcpy(arg->Csig, "F"); - - else if (dataType == CDF_REAL8 || dataType == CDF_DOUBLE || - dataType == CDF_EPOCH) - if (strncmp(arg->datasig, "[", 1) == 0) - strcpy(arg->Csig, "[D"); - else - strcpy(arg->Csig, "D"); - - else if (dataType == CDF_EPOCH16) { - if (strncmp(arg->datasig, "[", 1) == 0) - strcpy(arg->Csig, "[D"); - else { - strcpy(arg->Csig, "D"); - arg->length = 2; - } - } - - MYDEBUG("getItem", msg); - if (strcmp(arg->datasig, "Ljava/lang/String;") == 0) - arg->length = - (jsize)(*env)->GetLongField(env, parent, - (*env)->GetFieldID(env, - parentClass, - "numElements", - "J")) - + 1; - status = argAlloc(env, arg->Csig, arg); - - if (!CheckStatus("getItem", 0)) return(status); - (*env)->ReleaseStringUTFChars(env, (jstring) temp3, 0); - return (CDF_OK); - } - - /**************************************************************/ - /* Allocate the appropriate amount of space for the variable */ - /**************************************************************/ - - if (strcmp(arg->name, "name") == 0 || strcmp(arg->name, "path") == 0) { - if (arg->length == -1) { /* Have to use the length of the passed string */ - if (strcmp(arg->name, "name") == 0) - temp3 = - (*env)->GetObjectField(env, parent, - (*env)->GetFieldID(env, parentClass, - "name", - "Ljava/lang/String;")); - else - temp3 = - (*env)->GetObjectField(env, parent, - (*env)->GetFieldID(env, parentClass, - "path", - "Ljava/lang/String;")); - arg->length = - (jsize)(*env)->GetStringUTFLength(env, (jstring) temp3); - - (*env)->ReleaseStringUTFChars(env, (jstring) temp3, 0); - } - } - status = argAlloc(env, arg->sig, arg); - if (!CheckStatus("getItem", 0)) return(status); - - return (CDF_OK); -} /* getItem */ - - -/* Function: addCDFid - * - * Purpose: addCDFid adds a CDF id to the list of maintained CDF ids. - * - * Parameters: - * id - the C CDFid to add to the list - * Returns: - * jid - the position in the CDF list where the id was added - * - * Note that items from the list may not be removed since they may cause the id of the - * CDF object to become out of sync with the native list. - * - * If this is done, then all the CDF objects will have to be synced, which may be - * difficult. - * - * Note that they may also be needed by the finalize method. - */ -jlong addCDFid(CDFid id) { - - cdfIDList *myListOfCDFs; - jlong i = 0; - - myListOfCDFs = listOfCDFs; - - if (listOfCDFs == NULL) { /* It's the first one */ - myListOfCDFs = (cdfIDList *) malloc (sizeof(cdfIDList)); - listOfCDFs = myListOfCDFs; - - } else { /* Find the end of the list and then add it */ - while (myListOfCDFs->next != NULL) { - i++; - myListOfCDFs = myListOfCDFs->next; - } - i++; - myListOfCDFs->next = (cdfIDList *) malloc (sizeof(cdfIDList)); - myListOfCDFs = myListOfCDFs->next; - } - myListOfCDFs->jid = i; - myListOfCDFs->nCDFs = (int)i+1; - myListOfCDFs->id = id; - myListOfCDFs->open = TRUE; - myListOfCDFs->next = NULL; - - return i; -} /* addCDFid */ - -/* Function: getCDFid - * - * Purpose: Get the jid-th CDFid out of the list - * - * Parameters: - * jid - position id of the CDF link list - * - * Returns: - * id - the C CDFid - */ -CDFid getCDFid (jlong jid) { - - cdfIDList *myListOfCDFs; - int i = 0; - - myListOfCDFs = listOfCDFs; - for (i=0; i < (int)jid; i++) - myListOfCDFs = myListOfCDFs->next; - return myListOfCDFs->id; /* Acutal CDF id, not jid */ -} /* getCDFid */ - -/* Function: removeCDFid - * - * Purpose: Mark the jid-th CDFid on the list as closed when the CDF is closed - * - * Parameters: - * jid - position id of the CDF link list - * - */ -void removeCDFid (jlong jid) { - - cdfIDList *myListOfCDFs; - int i; - - myListOfCDFs = listOfCDFs; - for (i=0; i < (int)jid; i++) - myListOfCDFs = myListOfCDFs->next; - - myListOfCDFs->open = FALSE; /* Mark it as closed */ -} /* removeCDFid */ - -/* Function: flipDataElements - * - * Purpose: Shuffle data elements in records from row to column or column - * to row for a multi-dimensional variable in a column-major CDF. - * - * Parameters: - * buffer - buffer pointer for record data - * direction - indicator, 1 for column-to-row, 2 for row-to-column - * - */ -CDFstatus flipDataElements (char * buffer, jint direction) { - - long majority, numdims, dimSizes[CDF_MAX_DIMS], reccount; - long dimVarys[CDF_MAX_DIMS]; - long dimcounts[CDF_MAX_DIMS]; - int ix; - int toflip; - CDFstatus statuz; - long numdimsx; - statuz = CDFlib (GET_, CDF_MAJORITY_, &majority, - zVAR_NUMDIMS_, &numdims, - zVAR_DIMSIZES_, dimSizes, - zVAR_DIMVARYS_, dimVarys, - CONFIRM_, zVAR_RECCOUNT_, &reccount, - zVAR_DIMCOUNTS_, dimcounts, - NULL_); - if (statuz != CDF_OK) return(statuz); - numdimsx = 0; - for (ix = 0; ix < (int) numdims; ix++) { - if (dimVarys[ix]) { - dimSizes[numdimsx] = dimSizes[ix]; - ++numdimsx; - } - } - toflip = 1; - if (majority == ROW_MAJOR) toflip = 0; - else if (numdimsx < 2) toflip = 0; - else if (reccount < 1) toflip = 0; - else { - for (ix = 0; ix < (int) numdimsx; ix++) { - if (dimSizes[ix] != dimcounts[ix]) { - toflip = 0; - break; - } - } - } - if (toflip == 1) { - long NvalueBytes, numelems, datatype; - long nValuesPerRecord = 1L, nBytesPerRecord; - char *tmpbuf; - statuz = CDFlib (GET_, zVAR_DATATYPE_, &datatype, - zVAR_NUMELEMS_, &numelems, - NULL_); - if (statuz != CDF_OK) return(statuz); - - for (ix = 0; ix < (int) numdims; ix++) { - if (dimVarys[ix] && dimcounts[ix] > 0) - nValuesPerRecord *= dimcounts[ix]; - } - NvalueBytes = numelems * CDFelemSize(datatype); - nBytesPerRecord = nValuesPerRecord * NvalueBytes; - tmpbuf = (char *) malloc ((size_t) nBytesPerRecord * - reccount); - for (ix = 0; ix < (int) reccount; ix++) { - size_t offset = (size_t) (ix * nBytesPerRecord); - if (direction == 1) - COLtoROW (buffer + offset, tmpbuf + offset, - numdimsx, dimcounts, NvalueBytes); - else - ROWtoCOL (buffer + offset, tmpbuf + offset, - numdimsx, dimcounts, NvalueBytes); - - } - memmove (buffer, tmpbuf, - (size_t) reccount * nBytesPerRecord); - free (tmpbuf); - } - return (CDF_OK); -} /* flipDataElements */ - -/* Function: cleanGlobalRefs - * - * Purpose: Clear the global references if no CDFs are still open. In this - * case, the CDFid link list are also cleared. - * - * Parameters: - * env - the Java runtime environment - * - */ -void cleanGlobalRefs (JNIEnv *env) { - - cdfIDList *myListOfCDFs; - - if (listOfCDFs == NULL) return; - /* Check if there is still at least one open CDF. If so, then return. */ - if (listOfCDFs->open) return; - myListOfCDFs = listOfCDFs; - while (myListOfCDFs->next != NULL) { - myListOfCDFs = myListOfCDFs->next; - if (myListOfCDFs->open) return; - } - - /* All CDFs on the link list are closed. So */ - /* clear the link list and global references */ - - while (listOfCDFs->next != NULL) { - myListOfCDFs = listOfCDFs->next; - free (listOfCDFs); - listOfCDFs = myListOfCDFs; - } - free (listOfCDFs); - listOfCDFs = NULL; - (*env)->DeleteGlobalRef(env, cdfClass); - (*env)->DeleteGlobalRef(env, varClass); - (*env)->DeleteGlobalRef(env, entryClass); - (*env)->DeleteGlobalRef(env, attrClass); - (*env)->DeleteGlobalRef(env, dataClass); - (*env)->DeleteGlobalRef(env, excClass); - - (*env)->DeleteGlobalRef(env, byteClass); - (*env)->DeleteGlobalRef(env, shortClass); - (*env)->DeleteGlobalRef(env, intClass); - (*env)->DeleteGlobalRef(env, longClass); - (*env)->DeleteGlobalRef(env, floatClass); - (*env)->DeleteGlobalRef(env, doubleClass); - (*env)->DeleteGlobalRef(env, strClass); - (*env)->DeleteGlobalRef(env, objClass); - (*env)->DeleteGlobalRef(env, vecClass); - - cdfClass = 0; - MYDEBUG("cleanGlobalRefs", "Global Refs deleted."); - return; -} /* cleanGlobalRefs */ - -/* Function: JAVAcdflib - * Purpose: JAVAcdflib is the main wrapper to CDFlib calls - * - * Parameters: - * env - the JNI runtime environment - * obj - the CDFObject on which the command is to be executed. - * cmdVector - the CDF cmd wrapped in a java.long.Vector - * jid - the java CDF id which contains the CDFObject - * Returns: - * status - the return status of the CDFlib call - */ -CDFstatus JAVAcdflib (JNIEnv *env, - jobject theCDF, - jobject obj, - jobject cmdVector, /* Command vector to process */ - long jid, /* CDF id in the link list */ - long function) { /* Function to be processed */ - - jclass - objClass = (*env)->GetObjectClass(env, obj); - jmethodID - vSizeID = (*env)->GetMethodID(env, vecClass, "size", "()I"), - vElemID = (*env)->GetMethodID(env, vecClass, "elementAt", "(I)Ljava/lang/Object;"); - - jobject nextItem; - jthrowable exc; - CDFid id; /* Only need for the close method. */ - CDFid oid; - CDFstatus status, status2; - - int i; - char *CDFname; - argument arg, arg2, arg3, arg4, arg5, arg6, arg7, arg8; - long item, /* Item (e.g. CDF_, ATTR_, etc.) */ - func; /* Function (e.g. CREATE_, OPEN_, etc. */ - jlong newID; /* Position id in the link list */ - - /****************************************/ - /* Get the value of the passed function */ - /****************************************/ - func = function; - - MYDEBUG("cdflib",">>>>>>>>>>>>>>>>>>>>>>"); - strcpy(msg, "vecClass is"); - if (vecClass == NULL) - strcat(msg, " null!?!"); - else - strcat(msg, " ok!"); - MYDEBUG("cdflib", msg); - - /**********************************************************************/ - /* Since the first item is processed by the calling routine, skip the */ - /* command and start processing item and its arguments */ - /**********************************************************************/ - i = 1; - - /***********************************************************************/ - /* Process until there are no more items to process in the cmdVector */ - /***********************************************************************/ - - arg.length = -1; - - while (func != NULL_) { - switch (func) { - - case OPEN_: /* Open CDF */ - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - if (isItem(nextItem)) { - - status = getFuncOrItem(env, nextItem, &item); - if (!CheckStatus("Java getFuncOrItem", 0)) return(status); - sprintf(msg,"func = %ld item = %ld status = %ld",func,item,status); - MYDEBUG("cdflib",msg); - - /************************/ - /* Get the CDF filename */ - /************************/ - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - arg.length = -1; /* Actual path length is determined in getItem */ - status = getItem(env, theCDF, nextItem, obj, &arg); - if (!CheckStatus("Java getItem", 0)) return(status); - getJavaField (env, &arg); - sprintf(msg,"filename = %s", ((char *) arg.ptr)); - MYDEBUG("cdflib", msg); - - /**************/ - /* Get the id */ - /**************/ - arg2.length = 1; - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - status = getItem(env, theCDF, nextItem, obj, &arg2); - if (!CheckStatus("Java getItem", 0)) return(status); - - /**************************************************/ - /* Perform the OPEN_ and place the CDF in zMODE/2 */ - /**************************************************/ - status = CDFlib(OPEN_, item, (char *)arg.ptr, &oid, - NULL_); - if (!CheckStatus("cdflib (OPEN_, CDF_)", 1)) - return (ErrHandle(status, env, &arg, &arg2, NULL)); - - /********************************************************/ - /* Set the CDF id returned by CDFlib (i.e. oid) and add */ - /* the position id of the link list (i.e. newID). */ - /********************************************************/ - newID = addCDFid(oid); - (*env)->SetLongField(env, obj, arg2.id, newID); - - cleanArgument(env, &arg); - cleanArgument(env, &arg2); - - MYDEBUG("cdflib", "Getting nextItem"); - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - exc = (*env)->ExceptionOccurred(env); - if (exc) { - printf("Exception in cdflib\n"); - (*env)->ExceptionDescribe(env); - (*env)->ExceptionClear(env); - } - CHECKNULL("nextItem",nextItem); - status2 = getFuncOrItem(env, nextItem, &item); - } else { - (*env)->ThrowNew(env, excClass, "Bad function or item"); - } - break; /* end OPEN_ */ - - case CLOSE_: /* Special case: only close CDFs */ - MYDEBUG("cdflib","closing the file"); - /********************************************/ - /* NEW Get the jid-th CDFid out of the list */ - /********************************************/ - id = getCDFid(jid); - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - - status = CDFlib(SELECT_, CDF_, id, - CLOSE_, CDF_, - NULL_); - - if (!CheckStatus("cdflib (CLOSE_, CDF_)", 1)) return(status); - - removeCDFid(jid); - MYDEBUG("cdflib", "Getting nextItem"); - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - exc = (*env)->ExceptionOccurred(env); - if (exc) { - printf("Exception in cdflib\n"); - (*env)->ExceptionDescribe(env); - (*env)->ExceptionClear(env); - } - CHECKNULL("nextItem",nextItem); - status2 = getFuncOrItem(env, nextItem, &item); - cleanGlobalRefs(env); - break; /* end CLOSE_ */ - - case CONFIRM_: - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - if (isItem(nextItem)) { - status2 = getFuncOrItem(env, nextItem, &item); - - while (item < NULL_) { - sprintf (msg,"func = %ld item = %ld status = %ld", - func,item,status2); - MYDEBUG("cdflib",msg); - - switch(item) { - - case CDF_READONLY_MODE_: - case CDF_DECODING_: - case CDF_CACHESIZE_: - case CDF_NEGtoPOSfp0_MODE_: - case CDF_zMODE_: - case COMPRESS_CACHESIZE_: - case STAGE_CACHESIZE_: - case gENTRY_: - case zENTRY_: - case ATTR_: - case zVAR_RECNUMBER_: - case zVAR_RECCOUNT_: - case zVAR_RECINTERVAL_: - case zVAR_CACHESIZE_: - case zVAR_RESERVEPERCENT_: - - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - status = getItem(env, theCDF, nextItem, obj, &arg); - if (!CheckStatus("cdflib (CONFIRM_ 1)", 0)) return(status); - - getJavaField(env, &arg); - - sprintf (msg,"confirming item %ld, id = %ld", - item,*(long *)arg.ptr); - MYDEBUG("cdflib",msg); - - status = CDFlib(CONFIRM_, item, (long *)arg.ptr, - NULL_); - if (!CheckStatus("cdflib (CONFIRM_ 2)", 1)) - return(ErrHandle(status, env, &arg, NULL)); - - setJavaField(env, arg); - cleanArgument(env, &arg); - break; - - case zENTRY_EXISTENCE_: - - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - status = getItem(env, theCDF, nextItem, obj, &arg); - if (!CheckStatus("cdflib (CONFIRM_)", 0)) return(status); - - getJavaField(env, &arg); - - sprintf (msg,"confirming item %ld, id = %ld", - item,*(long *)arg.ptr); - MYDEBUG("cdflib",msg); - - status = CDFlib(CONFIRM_, item, *(long *)arg.ptr, - NULL_); - if (!CheckStatus("cdflib (CONFIRM_)", 1)) - return(ErrHandle(status, env, &arg, NULL)); - - setJavaField(env, arg); - cleanArgument(env, &arg); - break; - - case ATTR_EXISTENCE_: - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - status = getItem(env, theCDF, nextItem, obj, &arg); - if (!CheckStatus("cdflib (CONFIRM_)", 0)) return(status); - - getJavaField(env, &arg); /* Attribute name */ - - sprintf (msg,"confirming item %ld, id = %ld", - item,*(long *)arg.ptr); - MYDEBUG("cdflib",msg); - status = CDFlib(CONFIRM_, item, (char *)arg.ptr, - NULL_); - if (!CheckStatus("cdflib (CONFIRM_)", 1)) - return(ErrHandle(status, env, &arg, NULL)); - - setJavaField(env, arg); - cleanArgument(env, &arg); - break; - - case zVAR_PADVALUE_: - case CDF_CHECKSUM_: - - status = CDFlib(CONFIRM_, item, - NULL_); - - if (!CheckStatus("cdflib (CONFIRM_)", 1)) return(status); - break; - - default: - MYDEBUG("cdflib","Can't deal with it yet"); - break; - } /* switch(item) */ - - MYDEBUG("cdflib", "Getting nextItem"); - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - exc = (*env)->ExceptionOccurred(env); - if (exc) { - printf("Exception in cdflib2\n"); - (*env)->ExceptionDescribe(env); - (*env)->ExceptionClear(env); - } - CHECKNULL("nextItem",nextItem); - status2 = getFuncOrItem(env, nextItem, &item); - } - } else { - (*env)->ThrowNew(env, excClass, "Bad function or item"); - } - break; /* end CONFIRM_ */ - - case CREATE_: - - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - if (isItem(nextItem)) { - status2 = getFuncOrItem(env, nextItem, &item); - while (item < NULL_) { - sprintf (msg,"func = %ld item = %ld status = %ld", - func,item,status2); - MYDEBUG("cdflib",msg); - - switch(item) { - - case ATTR_: - arg.length = -1; /* Actual name length is determined in getItem */ - arg2.length = arg3.length = -1; - - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - status = getItem(env, theCDF, nextItem, obj, &arg); - if (!CheckStatus("cdflib (CREATE_,ATTR_) 1", 0)) return(status); - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - status = getItem(env, theCDF, nextItem, obj, &arg2); - if (!CheckStatus("cdflib (CREATE_,ATTR_) 2", 0)) return(status); - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - status = getItem(env, theCDF, nextItem, obj, &arg3); - if (!CheckStatus("cdflib (CREATE_,ATTR_) 3", 0)) return(status); - - getJavaField(env, &arg); /* Attr name */ - getJavaField(env, &arg2); /* Attr scope */ - - status = CDFlib (CREATE_, ATTR_, (char *)arg.ptr, - *(long *)arg2.ptr, - arg3.ptr, - NULL_); - if (!CheckStatus("cdflib (CREATE_,ATTR_) 4", 1)) - return (ErrHandle(1, env, &arg, &arg2, &arg3, NULL)); - - setJavaField (env,arg3); /* Set the value of attrNum */ - - cleanArgument(env, &arg); - cleanArgument(env, &arg2); - cleanArgument(env, &arg3); - break; - - case CDF_: - arg.length = -1; /* Actual path length is determined in getItem */ - arg2.length = arg3.length = arg4.length = -1; - - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - status = getItem(env, theCDF, nextItem, obj, &arg); - if (!CheckStatus("cdflib (CREATE_,CDF_) 1", 0)) return(status); - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - status = getItem(env, theCDF, nextItem, obj, &arg2); - if (!CheckStatus("cdflib (CREATE_,CDF_) 2", 0)) return(status); - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - status = getItem(env, theCDF, nextItem, obj, &arg3); - if (!CheckStatus("cdflib (CREATE_,CDF_) 3", 0)) return(status); - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - status = getItem(env, theCDF, nextItem, obj, &arg4); - if (!CheckStatus("cdflib (CREATE_,CDF_) 4", 0)) return(status); - getJavaField(env, &arg); /* char *CDFname */ - getJavaField(env, &arg2); /* long numDims */ - getJavaField(env, &arg3); /* long dimSizes[] */ - - /**************************************************** - * When creating CDF files, the name should not have - * the ".cdf" or ".CDF" extension at the end. Check - * the name (in arg.ptr) to see if ".cdf" or ".CDF" - * is present and remove it if it is. - ***************************************************/ - - if (strcmp((char *)arg.ptr+arg.length-4,".cdf") == 0 || - strcmp((char *)arg.ptr+arg.length-4,".CDF") == 0) { - CDFname = malloc(arg.length - 4 + 1); - if (CDFname == NULL) return(BAD_MALLOC); - memmove(CDFname, arg.ptr, arg.length-4); - CDFname[arg.length-4] = NUL; - } else { - CDFname = malloc(arg.length+1); - if (CDFname == NULL) return(BAD_MALLOC); - strcpy(CDFname, arg.ptr); - } - - status = CDFlib(CREATE_, CDF_, CDFname, - *(long *)arg2.ptr, - arg3.ptr, - &oid, /* out-CDFid */ - NULL_); - free(CDFname); - if (!CheckStatus("cdflib (CREATE_,CDF_) 5", 1)) - return (ErrHandle(status, env, &arg, &arg2, &arg3, - &arg4, NULL)); - - /****************************************************/ - /* Add the oid (CDF id) returned by the CDFlib call */ - /* to the link list. */ - /****************************************************/ - newID = addCDFid(oid); - - /********************************/ - /* Set the CDF id field in Java */ - /********************************/ - *(long *)arg4.ptr = (long) newID; - - setJavaField(env,arg4); - - cleanArgument(env, &arg); - cleanArgument(env, &arg2); - cleanArgument(env, &arg3); - cleanArgument(env, &arg4); - break; - - case zVAR_: - arg.length = -1; /* Actual name length is determined in getItem */ - arg2.length = arg3.length = arg4.length = arg5.length = - arg6.length = arg7.length = arg8.length = -1; - - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - status = getItem(env, theCDF, nextItem, obj, &arg); - if (!CheckStatus("cdflib (CREATE_,VAR_) 1", 0)) return(status); - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - status = getItem(env, theCDF, nextItem, obj, &arg2); - if (!CheckStatus("cdflib (CREATE_,VAR_) 2", 0)) return(status); - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - status = getItem(env, theCDF, nextItem, obj, &arg3); - if (!CheckStatus("cdflib (CREATE_,VAR_) 3", 0)) return(status); - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - status = getItem(env, theCDF, nextItem, obj, &arg4); - if (!CheckStatus("cdflib (CREATE_,VAR_) 4", 0)) return(status); - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - status = getItem(env, theCDF, nextItem, obj, &arg5); - if (!CheckStatus("cdflib (CREATE_,VAR_) 5", 0)) return(status); - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - status = getItem(env, theCDF, nextItem, obj, &arg6); - if (!CheckStatus("cdflib (CREATE_,VAR_) 6", 0)) return(status); - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - status = getItem(env, theCDF, nextItem, obj, &arg7); - if (!CheckStatus("cdflib (CREATE_,VAR_) 7", 0)) return(status); - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - status = getItem(env, theCDF, nextItem, obj, &arg8); - if (!CheckStatus("cdflib (CREATE_,VAR_) 8", 0)) return(status); - - getJavaField(env, &arg); /* char *varName */ - getJavaField(env, &arg2); /* jlong dataType */ - getJavaField(env, &arg3); /* jlong numElements */ - getJavaField(env, &arg4); /* jlong numDims */ - getJavaField(env, &arg5); /* jlong dimSizes[] */ - getJavaField(env, &arg6); /* jlong recVary */ - getJavaField(env, &arg7); /* jlong dimVary[] */ - status = CDFlib(CREATE_, zVAR_, (char *)arg.ptr, - *(long *)arg2.ptr, - *(long *)arg3.ptr, - *(long *)arg4.ptr, - (long *) arg5.ptr, - *(long *)arg6.ptr, - (long *) arg7.ptr, - arg8.ptr, /* varNum */ - NULL_); - if (!CheckStatus("cdflib (CREATE_,VAR_) 9", 1)) - return (ErrHandle(1, env, &arg, &arg2, &arg3, - &arg4, &arg5, &arg6, &arg7, &arg8, - NULL)); - - setJavaField(env,arg8); /* Set the variable number */ - cleanArgument(env, &arg); - cleanArgument(env, &arg2); - cleanArgument(env, &arg3); - cleanArgument(env, &arg4); - cleanArgument(env, &arg5); - cleanArgument(env, &arg6); - cleanArgument(env, &arg7); - cleanArgument(env, &arg8); - break; - - default: - (*env)->ThrowNew(env, excClass, "Bad function or item"); - break; - } /* switch(item) */ - - MYDEBUG("cdflib", "Getting nextItem"); - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - exc = (*env)->ExceptionOccurred(env); - if (exc) { - printf("Exception in cdflib2\n"); - (*env)->ExceptionDescribe(env); - (*env)->ExceptionClear(env); - } - CHECKNULL("nextItem",nextItem); - status2 = getFuncOrItem(env, nextItem, &item); - } - } else { - (*env)->ThrowNew(env, excClass, "Bad function or item"); - } - break; /* end CREATE_ */ - - case DELETE_: - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - if (isItem(nextItem)) { - status2 = getFuncOrItem(env, nextItem, &item); - - while (item < NULL_) { - sprintf(msg,"func = %ld item = %ld status = %ld",func,item, - status2); - MYDEBUG("cdflib",msg); - - switch(item) { - - case ATTR_: - case CDF_: - case gENTRY_: - case zENTRY_: - case zVAR_: - status = CDFlib(DELETE_, item, NULL_); - if (!CheckStatus("cdflib (DELETE_) 1", 1)) return(status); - if (item == CDF_) removeCDFid(jid); - break; - - case zVAR_RECORDS_: - case zVAR_RECORDS_RENUMBER_: - arg.length = arg2.length = -1; - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - status = getItem(env, theCDF, nextItem, obj, &arg); - if (!CheckStatus("cdflib (DELETE_, VAR_RECORDS_) 1", 0)) - return(status); - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - status = getItem(env, theCDF, nextItem, obj, &arg2); - if (!CheckStatus("cdflib (DELETE_,VAR_RECORDS_) 2", 0)) - return(status); - - getJavaField(env, &arg); /* first record number */ - getJavaField(env, &arg2); /* last record number */ - - status = CDFlib(DELETE_, item, *(long *)arg.ptr, - *(long *)arg2.ptr, - NULL_); - if (!CheckStatus("cdflib (DELETE_, VAR_RECORDS_) 3", 1)) - return(ErrHandle(status, env, &arg, &arg2, NULL)); - - cleanArgument(env, &arg); - cleanArgument(env, &arg2); - break; - default: - (*env)->ThrowNew(env, excClass, "Function not implemented yet. Contact the CDFJava API developer for requests/questions"); - break; - } /* switch(item) */ - - MYDEBUG("cdflib", "Getting nextItem"); - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - exc = (*env)->ExceptionOccurred(env); - if (exc) { - printf("Exception in cdflib2\n"); - (*env)->ExceptionDescribe(env); - (*env)->ExceptionClear(env); - } - CHECKNULL("nextItem",nextItem); - status2 = getFuncOrItem(env, nextItem, &item); - } - } else { - (*env)->ThrowNew(env, excClass, "Bad function or item"); - } - break; /* end DELETE_ */ - - case SAVE_: - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - if (isItem(nextItem)) { - status2 = getFuncOrItem(env, nextItem, &item); - - while (item < NULL_) { - sprintf(msg,"func = %ld item = %ld status = %ld",func,item, - status2); - MYDEBUG("cdflib",msg); - - switch(item) { - - case CDF_: - status = CDFlib(SAVE_, item, NULL_); - if (!CheckStatus("cdflib (SAVE_) 1", 1)) return(status); - break; - default: - (*env)->ThrowNew(env, excClass, "Function not implemented yet. Contact the CDFJava API developer for requests/questions"); - break; - } /* switch(item) */ - MYDEBUG("cdflib", "Getting nextItem"); - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - exc = (*env)->ExceptionOccurred(env); - if (exc) { - printf("Exception in cdflib2\n"); - (*env)->ExceptionDescribe(env); - (*env)->ExceptionClear(env); - } - CHECKNULL("nextItem",nextItem); - status2 = getFuncOrItem(env, nextItem, &item); - } - } else { - (*env)->ThrowNew(env, excClass, "Bad function or item"); - } - break; /* end SAVE_ */ - - case GET_: - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - if (isItem(nextItem)) { - status2 = getFuncOrItem(env, nextItem, &item); - - while (item < NULL_) { - - sprintf(msg,"func = %ld item = %ld status = %ld",func,item, - status2); - MYDEBUG("cdflib",msg); - - switch(item) { - - case ATTR_NAME_: - case ATTR_SCOPE_: - case ATTR_MAXgENTRY_: - case ATTR_MAXzENTRY_: - case ATTR_NUMgENTRIES_: - case ATTR_NUMzENTRIES_: - case CDF_COPYRIGHT_: - case CDF_ENCODING_: - case CDF_FORMAT_: - case CDF_INCREMENT_: - case CDF_MAJORITY_: - case CDF_NUMATTRS_: - case CDF_NUMgATTRS_: - case CDF_NUMvATTRS_: - case CDF_NUMrVARS_: - case CDF_NUMzVARS_: - case CDF_VERSION_: - case CDF_RELEASE_: - case CDF_CHECKSUM_: - case CDF_LEAPSECONDLASTUPDATED_: - case gENTRY_DATATYPE_: - case gENTRY_NUMELEMS_: - case zENTRY_DATATYPE_: - case zENTRY_NUMELEMS_: - case zVAR_NAME_: - case zVAR_NUMELEMS_: - case zVAR_DATATYPE_: - case zVAR_NUMDIMS_: - case zVAR_RECVARY_: - case zVAR_DIMVARYS_: - case zVAR_DIMSIZES_: - case zVAR_MAXREC_: - case zVAR_BLOCKINGFACTOR_: - case zVAR_MAXallocREC_: - case zVAR_NUMallocRECS_: - case zVAR_NUMRECS_: - case zVAR_SPARSERECORDS_: - case zVARs_MAXREC_: - case LIB_COPYRIGHT_: - case LIB_INCREMENT_: - case LIB_RELEASE_: - case LIB_VERSION_: - case LIB_subINCREMENT_: - if (item == CDF_COPYRIGHT_ || item == LIB_COPYRIGHT_) - arg.length = CDF_COPYRIGHT_LEN + 1; - if (item == ATTR_NAME_) { - if (lib_ver == 2 || CDFgetFileBackward()) - arg.length = CDF_ATTR_NAME_LEN + 1; - else - arg.length = CDF_ATTR_NAME_LEN256 + 1; - } - if (item == zVAR_NAME_) { - if (lib_ver == 2 || CDFgetFileBackward()) - arg.length = CDF_VAR_NAME_LEN + 1; - else - arg.length = CDF_VAR_NAME_LEN256 + 1; - } - if (item == LIB_subINCREMENT_) - arg.length = 2; - - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - - status = getItem(env, theCDF, nextItem, obj, &arg); - if (!CheckStatus("cdflib (GET_) 1", 0)) return(status); - - status = CDFlib(GET_, item, arg.ptr, NULL_); - if (!CheckStatus("cdflib (GET_) 2", 1)) - return(ErrHandle(status, env, &arg, NULL)); - - setJavaField(env,arg); - cleanArgument(env, &arg); - - break; - - case ATTR_NUMBER_: - if (lib_ver == 2 || CDFgetFileBackward()) - arg.length = CDF_ATTR_NAME_LEN256+1; - else - arg.length = CDF_ATTR_NAME_LEN+1; - arg2.length = -1; - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - status = getItem(env, theCDF, nextItem, obj, &arg); - if (!CheckStatus("cdflib (GET_, ATTR_NUMBER_) 1", 0)) - return(status); - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - status = getItem(env, theCDF, nextItem, obj, &arg2); - if (!CheckStatus("cdflib (GET_,ATTR_NUMBER_) 2", 0)) - return(status); - - getJavaField(env, &arg); /* Attribute name */ - - status = CDFlib(GET_, ATTR_NUMBER_, (char *)arg.ptr, - arg2.ptr, - NULL_); - if (!CheckStatus("cdflib (GET_, ATTR_NUMBER_) 3", 1)) - return(ErrHandle(status, env, &arg, &arg2, NULL)); - - setJavaField(env,arg2); /* Set the attribute number */ - cleanArgument(env, &arg); - cleanArgument(env, &arg2); - break; - - case zVAR_ALLOCATEDFROM_: - case zVAR_ALLOCATEDTO_: - arg.length = arg2.length = -1; - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - status = getItem(env, theCDF, nextItem, obj, &arg); - if (!CheckStatus("cdflib (GET_, ALLOCATEDFROM_/TO_) 1", 0)) - return(status); - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - status = getItem(env, theCDF, nextItem, obj, &arg2); - if (!CheckStatus("cdflib (GET_,ALLOCATEDFROM_/TO_) 2", 0)) - return(status); - - getJavaField(env, &arg); /* start record number */ - - status = CDFlib(GET_, item, *(long *)arg.ptr, - arg2.ptr, - NULL_); - if (!CheckStatus("cdflib (GET_, ALLOCATEDFROM_/TO_) 3", 1)) - return(ErrHandle(status, env, &arg, &arg2, NULL)); - - setJavaField(env,arg2); /* Set the last record number */ - cleanArgument(env, &arg); - cleanArgument(env, &arg2); - break; - - case gENTRY_DATA_: - case zENTRY_DATA_: - case zVAR_DATA_: - case zVAR_HYPERDATA_: - case zVAR_PADVALUE_: - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - status = getItem(env, theCDF, nextItem, obj, &arg); - if (!CheckStatus("cdflib (GET_, ENTRY/VARIABLE_DATA_) 1", 0)) - return(status); - - status = CDFlib (GET_, item, (void *) arg.ptr, - NULL_); - - if (!CheckStatus("cdflib (GET_,ENTRY/VARIABLE_DATA_) 2", 1)) - return(ErrHandle(status, env, &arg, NULL)); - - if (item == zVAR_HYPERDATA_) { - status2 = flipDataElements((char *) arg.ptr, 1); - } - setJavaField(env,arg); /* Set the attribute entry data */ - cleanArgument(env, &arg); - break; - - case CDF_COMPRESSION_: - case rVAR_COMPRESSION_: - case zVAR_COMPRESSION_: - arg.length = arg2.length = arg3.length = -1; - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - status = getItem(env, theCDF, nextItem, obj, &arg); - if (!CheckStatus("cdflib (GET_, COMPRESSION_) 1", 0)) - return(status); - - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - status = getItem(env, theCDF, nextItem, obj, &arg2); - if (!CheckStatus("cdflib (GET_, COMPRESSION_) 2", 0)) - return(status); - - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - status = getItem(env, theCDF, nextItem, obj, &arg3); - if (!CheckStatus("cdflib (GET_, COMPRESSION_) 3", 0)) - return(status); - - status = CDFlib(GET_, item, arg.ptr, - arg2.ptr, - arg3.ptr, - NULL_); - if (!CheckStatus("cdflib (GET_, COMPRESSION_) 4", 1)) - return (ErrHandle(status, env, &arg, &arg2, &arg3, - NULL)); - - setJavaField(env,arg); /* long *cType */ - setJavaField(env,arg2); /* long cParms[CDF_MAX_PARMS] */ - setJavaField(env,arg3); /* long *cPct */ - cleanArgument(env, &arg); - cleanArgument(env, &arg2); - cleanArgument(env, &arg3); - break; - - default: - MYDEBUG("cdflib","Can't deal with it yet"); - break; - } /* switch(item) */ - - MYDEBUG("cdflib", "Getting nextItem"); - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - exc = (*env)->ExceptionOccurred(env); - if (exc) { - printf("Exception in cdflib2\n"); - (*env)->ExceptionDescribe(env); - (*env)->ExceptionClear(env); - } - CHECKNULL("nextItem",nextItem); - status2 = getFuncOrItem(env, nextItem, &item); - } - } else { - (*env)->ThrowNew(env, excClass, "Bad function or item"); - } - break; /* end GET_ */ - - case PUT_: - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - if (isItem(nextItem)) { - status2 = getFuncOrItem(env, nextItem, &item); - - while (item < NULL_) { - sprintf (msg,"func = %ld item = %ld status = %ld", - func,item,status2); - MYDEBUG("cdflib",msg); - switch(item) { - - case ATTR_NAME_: - case zVAR_NAME_: /* for 1 pointer variable input */ - arg.length = -1; /* Actual name length is determined in getItemm */ - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - status = getItem(env, theCDF, nextItem, obj, &arg); - if (!CheckStatus("cdflib (PUT_) 1", 0)) return(status); - - getJavaField(env, &arg); - - status = CDFlib(PUT_, item, (char *)arg.ptr, NULL_); - if (!CheckStatus("cdflib (PUT_) 2", 1)) - return(ErrHandle(status, env, &arg, NULL)); - - cleanArgument(env, &arg); - break; - - case ATTR_SCOPE_: - case CDF_ENCODING_: - case CDF_MAJORITY_: - case CDF_FORMAT_: - case CDF_CHECKSUM_: - case CDF_LEAPSECONDLASTUPDATED_: - case zVAR_ALLOCATERECS_: - case zVAR_BLOCKINGFACTOR_: - case zVAR_RECVARY_: - case zVAR_SPARSERECORDS_: - case zVAR_INITIALRECS_: /* for 1 long variable as input */ - - arg.length = -1; - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - status = getItem(env, theCDF, nextItem, obj, &arg); - if (!CheckStatus("cdflib (PUT_,CDF_ENC/MAJ_/FOR_/zVAR_ALLOC_/BLOCK_/INIT_/SPARSE_/RECVARY_) 1", 0)) - return(status); - getJavaField(env, &arg); - status = CDFlib(PUT_, item, *(long *)arg.ptr, - NULL_); - if (!CheckStatus("cdflib (PUT_,CDF_ENC/MAJ_/FOR_/zVAR_ALLOC_/BLOCK_/INIT_/SPARSE_/RECVARY_) 2", 1)) - return (ErrHandle(status, env, &arg, NULL)); - - cleanArgument(env, &arg); - break; - - case zENTRY_DATA_: - case gENTRY_DATA_: /* for 2 long and 1 pointer variables input */ - arg.length = arg2.length = arg3.length = -1; - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - status = getItem(env, theCDF, nextItem, obj, &arg); - if (!CheckStatus("cdflib (PUT_,ENTRY_DATA_) 1", 0)) - return(status); - - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - status = getItem(env, theCDF, nextItem, obj, &arg2); - if (!CheckStatus("cdflib (PUT_,ENTRY_DATA_) 2", 0)) - return(status); - - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - status = getItem(env, theCDF, nextItem, obj, &arg3); - if (!CheckStatus("cdflib (PUT_,ENTRY_DATA_) 3", 0)) - return(status); - - getJavaField(env, &arg); /* long dataType */ - - getJavaField(env, &arg2); /* long numElements */ - - getJavaField(env, &arg3); /* void *data */ - - status = CDFlib(PUT_, item, *(long *)arg.ptr, - *(long *)arg2.ptr, - arg3.ptr, - NULL_); - if (!CheckStatus("cdflib (PUT_,ENTRY_DATA_) 4", 1)) - return (ErrHandle(status, env, &arg, &arg2, &arg3, - NULL)); - - cleanArgument(env, &arg); - cleanArgument(env, &arg2); - cleanArgument(env, &arg3); - break; - - case gENTRY_DATASPEC_: - case zENTRY_DATASPEC_: - case zVAR_DATASPEC_: - case zVAR_ALLOCATEBLOCK_: /* for 2 long variables input */ - arg.length = arg2.length = -1; - - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - status = getItem(env, theCDF, nextItem, obj, &arg); - - if (!CheckStatus("cdflib (PUT_,g/zENTRY_DATASPEC_|zVAR_DATASPEC_|zVAR_ALLOCATEBLOCK_) 1", 0)) - return(status); - - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - status = getItem(env, theCDF, nextItem, obj, &arg2); - if (!CheckStatus("cdflib (PUT_,g/zENTRY_DATASPEC_|zVAR_DATASPEC_|zVAR_ALLOCATEBLOCK_) 2", 0)) - return(status); - - getJavaField(env, &arg); /* long firstRecord */ - getJavaField(env, &arg2); /* long lastRecord */ - - status = CDFlib(PUT_, item, *(long *)arg.ptr, - *(long *)arg2.ptr, - NULL_); - if (!CheckStatus("cdflib (PUT_,g/zENTRY_DATASPEC_|zVAR_DATASPEC_|zVAR_ALLOCATEBLOCK_) 3", 1)) - return (ErrHandle(status, env, &arg, &arg2, NULL)); - - cleanArgument(env, &arg); - cleanArgument(env, &arg2); - break; - - case zVAR_PADVALUE_: - case zVAR_DATA_: - case zVAR_HYPERDATA_: /* for 1 pointer variable for input */ - - arg.length = -1; - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - status = getItem(env, theCDF, nextItem, obj, &arg); - if (!CheckStatus("cdflib (PUT_,zVAR_PADVALUE_/_DATA_/_HYPERDATA_) 1", 0)) - return(status); - - getJavaField(env, &arg); - - if (item == zVAR_HYPERDATA_) { - status2 = flipDataElements((char *) arg.ptr, 2); - } - - status = CDFlib(PUT_, item, (void *)arg.ptr, - NULL_); - if (!CheckStatus("cdflib (PUT_,zVAR_PADVALUE_/_DATA_/_HYPERDATA_) 2", 1)) - return (ErrHandle(status, env, &arg, NULL)); - - cleanArgument(env, &arg); - break; - - case CDF_COMPRESSION_: - case zVAR_COMPRESSION_: /* for 1 long and 1 pointer variables input */ - - arg.length = arg2.length = -1; - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - status = getItem(env, theCDF, nextItem, obj, &arg); - if (!CheckStatus("cdflib (PUT_,CDF_/zVAR_COMPRESSION_) 1", 0)) - return(status); - - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - status = getItem(env, theCDF, nextItem, obj, &arg2); - if (!CheckStatus("cdflib (PUT_,CDF_/zVAR_COMPRESSION_) 2", 0)) - return(status); - - getJavaField(env, &arg); - - getJavaField(env, &arg2); - - status = CDFlib(PUT_, item, *(long *)arg.ptr, arg2.ptr, - NULL_); - if (!CheckStatus("cdflib (PUT_,CDF_/zVAR_COMPRESSION_) 3", 1)) - return (ErrHandle(status, env, &arg, &arg2, NULL)); - - cleanArgument(env, &arg); - cleanArgument(env, &arg2); - break; - - case zVAR_DIMVARYS_: /* for 1 pointer variable input */ - - arg.length = -1; - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - status = getItem(env, theCDF, nextItem, obj, &arg); - if (!CheckStatus("cdflib (PUT_,zVAR_DIMVARYS_) 1", 0)) - return(status); - - getJavaField(env, &arg); - - status = CDFlib(PUT_, item, arg.ptr, - NULL_); - if (!CheckStatus("cdflib (PUT_,zVAR_DIMVARYS_) 2", 1)) - return (ErrHandle(status, env, &arg, NULL)); - - cleanArgument(env, &arg); - break; - - default: - (*env)->ThrowNew(env, excClass, "Bad function or item"); - break; - } /* switch(item) */ - - MYDEBUG("cdflib", "Getting nextItem"); - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - exc = (*env)->ExceptionOccurred(env); - if (exc) { - printf("Exception in cdflib2\n"); - (*env)->ExceptionDescribe(env); - (*env)->ExceptionClear(env); - } - CHECKNULL("nextItem",nextItem); - status2 = getFuncOrItem(env, nextItem, &item); - } - } else { - (*env)->ThrowNew(env, excClass, "Bad function or item"); - } - break; /* end PUT_ */ - - /******************************************************************/ - /* SELECT_ */ - /******************************************************************/ - case SELECT_: - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - if (isItem(nextItem)) { - status2 = getFuncOrItem(env, nextItem, &item); - - while (item < NULL_) { - sprintf (msg,"func = %ld item = %ld status = %ld", - func,item,status2); - MYDEBUG("cdflib",msg); - - switch(item) { - - case CDF_READONLY_MODE_: - case CDF_DECODING_: - case CDF_CACHESIZE_: - case CDF_NEGtoPOSfp0_MODE_: - case CDF_zMODE_: - case COMPRESS_CACHESIZE_: - case STAGE_CACHESIZE_: - case gENTRY_: - case zENTRY_: - case ATTR_: - case zVAR_RECNUMBER_: - case zVAR_RECCOUNT_: - case zVAR_RECINTERVAL_: - case zVAR_CACHESIZE_: - case zVAR_RESERVEPERCENT_: - case CDF_: - case zVAR_: - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - status = getItem(env, theCDF, nextItem, obj, &arg); - getJavaField(env, &arg); - if (!CheckStatus("cdflib (SELECT_)", 0)) - return(status); - - if (item == CDF_) { - id = getCDFid(jid); - status = CDFlib(SELECT_, CDF_, id, NULL_); - } else { - status = CDFlib(SELECT_, item, *(long *)arg.ptr, - NULL_); - } - if (!CheckStatus("cdflib (SELECT_)", 1)) - return(ErrHandle(status, env, &arg, NULL)); - - cleanArgument(env, &arg); - break; - - case zVAR_DIMINDICES_: - case zVAR_DIMCOUNTS_: - case zVAR_DIMINTERVALS_: - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - status = getItem(env, theCDF, nextItem, obj, &arg); - getJavaField(env, &arg); - if (!CheckStatus("cdflib (SELECT_)", 0)) - return(status); - - status = CDFlib(SELECT_, item, (long *)arg.ptr, - NULL_); - if (!CheckStatus("cdflib (SELECT_)", 1)) - return(ErrHandle(status, env, &arg, NULL)); - - cleanArgument(env, &arg); - break; - - default: - MYDEBUG("cdflib","Can't deal with it yet"); - break; - } /* switch(item) */ - - MYDEBUG("cdflib", "Getting nextItem"); - nextItem = (*env)->CallObjectMethod(env, cmdVector, vElemID, i++); - exc = (*env)->ExceptionOccurred(env); - if (exc) { - printf("Exception in cdflib2\n"); - (*env)->ExceptionDescribe(env); - (*env)->ExceptionClear(env); - } - CHECKNULL("nextItem",nextItem); - status2 = getFuncOrItem(env, nextItem, &item); - } - } else { - (*env)->ThrowNew(env, excClass, "Bad function or item"); - } - break; /* end SELECT_ */ - - default: - (*env)->ThrowNew(env, excClass, "Bad function or item"); - break; - } /* switch(func) */ - func = item; - sprintf(msg, "The next func = %ld",func); - MYDEBUG("cdflib", msg); - - exc = (*env)->ExceptionOccurred(env); - if (exc) { - printf("Exception in cdflib3\n"); - (*env)->ExceptionDescribe(env); - (*env)->ExceptionClear(env); - return(BAD_FNC_OR_ITEM); - } - - } /* while(func!=NULL_) */ - MYDEBUG("cdflib","<<<<<<<<<<<<<<<<<<<<"); - return(status); - -} /* end JAVAcdflib */ - -/********************************************* - ** ** - ** JNI Methods ** - ** ** - *********************************************/ - -/* Function: cdfNativeLib - * Class: CDFNativeLibrary - * Package: gsfc.nssdc.cdf - * - * Purpose: This is the main wrapper for the native implementation of the - * CDFJava API - * - * Parameters: - * in: env - The Java environment pointer - * in: nativeLibraryObject - The instance of CDFNativeLibrary making - * the call - * in: theCDF - The CDF to which the object belongs - * in: obj - The instance of a CDFObject on which the cmds should be - * executed - * in: cmdVector - A java.util.Vector that contains the CDF command - * to perform - * Returns: - * void - */ -JNIEXPORT void JNICALL -Java_gsfc_nssdc_cdf_CDFNativeLibrary_cdfNativeLib(JNIEnv *env, - jobject nativeLibraryObject, - jobject theCDF, - jobject obj, - jobject cmdVector) { - - jclass - myobjClass = (*env)->GetObjectClass(env, obj), - cmdClass = (*env)->GetObjectClass(env, cmdVector); - - jfieldID cdfidID, idID; - jmethodID vElemID; - jobject firstCmd, firstArg; - - long cdfid, /* CDF id assigned by the CDFlib routine */ - objType, /* CDF object type */ - func, /* CDF function (e.g. CREATE_, GET_, etc) */ - newArg; /* Argument after function */ - - - /* Needed for save operation without closing a CDF file */ - struct CDFstruct *cdfstruct; - CDFid id0; - CDFstatus status; - - /* For the first call to here, set up all global references */ - if (cdfClass == 0) { - - jclass cdfClass1, varClass1, entryClass1, attrClass1, dataClass1, - excClass1; - jclass byteClass1, shortClass1, intClass1, longClass1, floatClass1, - doubleClass1, strClass1, vecClass1, objClass1; - - cdfClass1 = (*env)->FindClass(env, "gsfc/nssdc/cdf/CDF"), - varClass1 = (*env)->FindClass(env, "gsfc/nssdc/cdf/Variable"), - entryClass1 = (*env)->FindClass(env, "gsfc/nssdc/cdf/Entry"), - attrClass1 = (*env)->FindClass(env, "gsfc/nssdc/cdf/Attribute"), - dataClass1 = (*env)->FindClass(env, "gsfc/nssdc/cdf/CDFData"), - excClass1 = (*env)->FindClass(env, "gsfc/nssdc/cdf/CDFException"), - - vecClass1 = (*env)->FindClass(env, "java/util/Vector"), - byteClass1 = (*env)->FindClass(env, "java/lang/Byte"), - shortClass1 = (*env)->FindClass(env, "java/lang/Short"), - intClass1 = (*env)->FindClass(env, "java/lang/Integer"), - longClass1 = (*env)->FindClass(env, "java/lang/Long"), - floatClass1 = (*env)->FindClass(env, "java/lang/Float"), - doubleClass1 = (*env)->FindClass(env, "java/lang/Double"), - strClass1 = (*env)->FindClass(env, "java/lang/String"), - objClass1 = (*env)->FindClass(env, "java/lang/Object"); - - cdfClass = (*env)->NewGlobalRef(env, cdfClass1); - varClass = (*env)->NewGlobalRef(env, varClass1); - entryClass = (*env)->NewGlobalRef(env, entryClass1); - attrClass = (*env)->NewGlobalRef(env, attrClass1); - dataClass = (*env)->NewGlobalRef(env, dataClass1); - excClass = (*env)->NewGlobalRef(env, excClass1); - - vecClass = (*env)->NewGlobalRef(env, vecClass1); - byteClass = (*env)->NewGlobalRef(env, byteClass1); - shortClass = (*env)->NewGlobalRef(env, shortClass1); - intClass = (*env)->NewGlobalRef(env, intClass1); - longClass = (*env)->NewGlobalRef(env, longClass1); - floatClass = (*env)->NewGlobalRef(env, floatClass1); - doubleClass = (*env)->NewGlobalRef(env, doubleClass1); - strClass = (*env)->NewGlobalRef(env, strClass1); - objClass = (*env)->NewGlobalRef(env, objClass1); - - BvalID = (*env)->GetMethodID(env, byteClass, "byteValue", "()B"); - SvalID = (*env)->GetMethodID(env, shortClass, "shortValue", "()S"); - IvalID = (*env)->GetMethodID(env, intClass, "intValue", "()I"); - LvalID = (*env)->GetMethodID(env, longClass, "longValue", "()J"); - FvalID = (*env)->GetMethodID(env, floatClass, "floatValue", "()F"); - DvalID = (*env)->GetMethodID(env, doubleClass, "doubleValue", "()D"); - - cdfStatusID = (*env)->GetFieldID(env, cdfClass, "cdfStatus", "J"); - infoWarnID = (*env)->GetFieldID(env, cdfClass, "infoWarning", "J"); - - status = CDFlib(GET_, LIB_VERSION_, &lib_ver, - NULL_); - - } - - if (cdfClass == NULL) MYDEBUG("cdfNativeLib", "cdfClass is null"); - if (objClass == NULL) MYDEBUG("cdfNativeLib", "objClass is null"); - if (cmdClass == NULL) MYDEBUG("cdfNativeLib", "cmdClass is null"); - if (vecClass == NULL) MYDEBUG("cdfNativeLib", "vecClass is null???"); - - cdfidID = (*env)->GetFieldID(env, cdfClass, "id", "J"); - MYDEBUG("cdfNativeLib","got cdfidID"); - - idID = (*env)->GetFieldID(env, myobjClass, "id", "J"); - MYDEBUG("cdfNativeLib","got idID"); - - vElemID=(*env)->GetMethodID(env, cmdClass, "elementAt", - "(I)Ljava/lang/Object;"); - MYDEBUG("cdfNativeLib","got jmethodIDs"); - /******************************************************/ - /* Get the real CDF id assigned by the CDFlib routine */ - /******************************************************/ - cdfid = (long)(*env)->GetLongField(env, theCDF, cdfidID); - MYDEBUG("cdfNativeLib","got fields"); - MYDEBUG("cdfNativeLib","getting first command"); - - /***************************************************/ - /* Get the first command and make sure that is one */ - /***************************************************/ - firstCmd = (*env)->CallObjectMethod(env, cmdVector, vElemID, 0); - status = getFuncOrItem(env, firstCmd, &func); - if (!CheckStatus("Java getFuncOrItem", 0)) return; - sprintf(msg,"1st function = %ld", func); - MYDEBUG("cdfNativeLib", msg); - if (func < NULL_) { - (*env)->ThrowNew(env, excClass, "Illegal function detected."); - return; - } - /*****************************************************/ - /* ok to continue. Determine what type of CDFObject */ - /*****************************************************/ - - objType = cdfObjectType(env, obj); - switch (objType) { - - case CDF_CLASS: - if (func == SAVE_) { /* Should SAVE_ be added to the main CDFlib?? */ - id0 = getCDFid(cdfid); - cdfstruct = (struct CDFstruct *)id0; - if (cdfstruct->largeFile) { - /* UpdateDotCDF returns 0 for success nonzero indicates failure */ - if (UpdateDotCDF64(cdfstruct) != 0) - (*env)->ThrowNew(env, excClass, "Save Failed 1."); - /* V_flush returns 0 for success nonzero indicates failure */ - if (V_flush64(cdfstruct->fp) != 0) - (*env)->ThrowNew(env, excClass, "Save Failed 2."); - } else { - /* UpdateDotCDF returns 0 for success nonzero indicates failure */ - if (UpdateDotCDF(cdfstruct) != 0) - (*env)->ThrowNew(env, excClass, "Save Failed 1."); - if (V_flush(cdfstruct->fp) != 0) - (*env)->ThrowNew(env, excClass, "Save Failed 2."); - } - } else if (func == BACKWARD_) { -/* if (func == BACKWARD_) { */ - firstArg = (*env)->CallObjectMethod(env, cmdVector, vElemID, 1); - status = getFuncOrItem(env, firstArg, &newArg); - if (!CheckStatus("Java getFuncOrItem", 0)) return; - CDFsetFileBackward((int)newArg); - } else if (func == CHECKSUM_) { - firstArg = (*env)->CallObjectMethod(env, cmdVector, vElemID, 1); - status = getFuncOrItem(env, firstArg, &newArg); - if (!CheckStatus("Java getFuncOrItem", 0)) return; - CDFsetChecksumMode(newArg); - } else if (func == VALIDATE_) { - firstArg = (*env)->CallObjectMethod(env, cmdVector, vElemID, 1); - status = getFuncOrItem(env, firstArg, &newArg); - if (!CheckStatus("Java getFuncOrItem", 0)) return; - CDFsetValidate(newArg); - } else if (func == GETCDFFILEBACKWARD_ || func == GETCDFCHECKSUM_ || - func == GETCDFVALIDATE_) { - argument arg; - arg.length = -1; - if (func == GETCDFFILEBACKWARD_) - envVar = (long) CDFgetFileBackwardEnvVar(); - else if (func == GETCDFCHECKSUM_) - envVar = (long) CDFgetChecksumEnvVar(); - else - envVar = (long) CDFgetValidate(); - firstArg = (*env)->CallObjectMethod(env, cmdVector, vElemID, 1); - status = getItem(env, theCDF, firstArg, obj, &arg); - *(long *)arg.ptr = envVar; - setJavaField(env, arg); - cleanArgument(env, &arg); - } else if (func == GETLEAPSECONDSENVVAR_) { - argument arg; - char *envvar; - arg.length = CDF_PATHNAME_LEN + 1; - firstArg = (*env)->CallObjectMethod(env, cmdVector, vElemID, 1); - status = getItem(env, theCDF, firstArg, obj, &arg); - envvar = (char *) CDFgetLeapSecondsTableEnvVar(); - if (envvar != NULL) - strncpy (arg.ptr, envvar, CDF_PATHNAME_LEN); - else - arg.ptr = NULL; - setJavaField(env, arg); - cleanArgument(env, &arg); - } else if (func == NULL_) { /* just to select this CDF */ - id0 = getCDFid(cdfid); - status = CDFlib(SELECT_, CDF_, id0, - NULL_); - if (!CheckStatus("cdflib (CDF)", 1)) return; - if (func == NULL_) return; /* If func == SELECT, return */ - } else { - status = JAVAcdflib (env, theCDF, obj, cmdVector, cdfid, func); - if (status != CDF_OK) return; - } - if (func == CLOSE_ || func == DELETE_) cleanGlobalRefs(env); - break; - - case VAR_CLASS: -/* id0 = getCDFid(cdfid); */ -/* if (func == CREATE_) { */ -/* status = CDFlib(SELECT_, CDF_, id0, */ -/* NULL_); */ -/* } else { */ - /* Get the id of the calling var */ -/* id = (long) (*env)->GetLongField(env, obj, idID); */ -/* */ -/* sprintf(msg,"Selecting variable #%ld",id); */ -/* MYDEBUG("cdflib (variable)",msg); */ -/* */ -/* status = CDFlib(SELECT_, CDF_, id0, */ -/* zVAR_, id, */ -/* NULL_); */ -/* } */ -/* if (!CheckStatus("cdflib (Variable)")) return; */ -/* if (func == NULL_) return; */ /* If func = SELECT, return */ - - status = JAVAcdflib(env, theCDF, obj, cmdVector, cdfid, func); - if (status != CDF_OK) return; - break; - - case ENTRY_CLASS: -/* if (func == NULL_) return; */ - /* Get the id of the calling entry */ -/* id = (long) (*env)->GetLongField(env, obj, idID); */ -/* id0 = getCDFid(cdfid); */ -/* entryScopeID = (*env)->GetFieldID(env, entryClass, "scope", "J"); */ -/* scope = (long)(*env)->GetLongField(env, obj, entryScopeID); */ -/* if (scope == GLOBAL_SCOPE) */ -/* status = CDFlib(SELECT_, CDF_, id0, gENTRY_, id, */ -/* NULL_); */ -/* else */ -/* status = CDFlib(SELECT_, CDF_, id0, */ -/* zENTRY_, id, */ -/* NULL_); */ -/* */ -/* if (!CheckStatus("cdflib (Entry)")) return; */ -/* if (func == NULL_) return; */ /* If func = SELECT, return */ - - status = JAVAcdflib(env, theCDF, obj, cmdVector, cdfid, func); - if (status != CDF_OK) return; - break; - - case DATA_CLASS: -/* id0 = getCDFid(cdfid); */ -/* status = CDFlib(SELECT_, CDF_, id0, */ -/* NULL_); */ -/* if (!CheckStatus("cdflib (DATA_CLASS)")) return; */ - status = JAVAcdflib(env, theCDF, obj, cmdVector, cdfid, func); - if (status != CDF_OK) return; - break; - - case ATTR_CLASS: -/* id0 = getCDFid(cdfid); */ -/* if (func == CREATE_) { */ -/* MYDEBUG("_Attribute_ 2", "CREATE_, ATTR_"); */ -/* status = CDFlib(SELECT_, CDF_, id0, */ -/* NULL_); */ -/* } else { */ - /* Get the id of the calling attr */ -/* id = (long) (*env)->GetLongField(env, obj, idID); */ -/* sprintf(msg,"Selecting attr #%ld",id); */ -/* MYDEBUG("_Attribute_ 2",msg); */ -/* status = CDFlib(SELECT_, CDF_, id0, */ -/* ATTR_, id, */ -/* NULL_); */ -/* } */ -/* if (!CheckStatus("cdflib (Attribute)")) return; */ -/* if (func == NULL_) return; */ /* If func = SELECT, return */ - - status = JAVAcdflib(env, theCDF, obj, cmdVector, cdfid, func); - if (status != CDF_OK) return; - break; - - default: /* bad class. Throw an error */ - (*env)->ThrowNew(env, excClass, "Bad CDFObject passed to cdflib\n"); - break; - } /* switch(objtype) */ -/* cleanGlobalRefs(env); */ - - -} /* Java_gsfc_nssdc_cdf_CDFNativeLibrary_cdfNativeLib */ - -/********************************************* - ** ** - ** Epoch Utility Wrappers ** - ** ** - ** Note: These wrappers are now ** - ** obsolete and are present for ** - ** testing and comparison ** - ** ** - *********************************************/ - -JNIEXPORT jdouble JNICALL -Java_gsfc_nssdc_cdf_util_EpochNative_compute(JNIEnv *env, - jobject obj, - jlong year, - jlong month, - jlong day, - jlong hour, - jlong minute, - jlong second, - jlong msec) { - - double epoch = computeEPOCH((long)year, (long)month, (long)day, (long)hour, - (long)minute, (long)second, (long)msec); - - return((jdouble)epoch); -} - -JNIEXPORT jlongArray JNICALL -Java_gsfc_nssdc_cdf_util_EpochNative_breakdown(JNIEnv *env, jobject obj, - jdouble epoch) { - - long year, month, day, hour, minute, second, msec; - jlongArray jarray; - jlong *jbody; - - jarray = (*env)->NewLongArray(env, 7); - EPOCHbreakdown(epoch, &year, &month, &day, &hour, &minute, &second, &msec); - jbody = (*env)->GetLongArrayElements(env, jarray, 0); - jbody[0] = (jlong)year; - jbody[1] = (jlong)month; - jbody[2] = (jlong)day; - jbody[3] = (jlong)hour; - jbody[4] = (jlong)minute; - jbody[5] = (jlong)second; - jbody[6] = (jlong)msec; - - (*env)->ReleaseLongArrayElements(env, jarray, jbody, 0); - - return (jarray); -} - -JNIEXPORT jstring JNICALL -Java_gsfc_nssdc_cdf_util_EpochNative_encode(JNIEnv *env, - jobject obj, - jdouble epoch) { - - char epString[EPOCH_STRING_LEN+1]; - - encodeEPOCH(epoch, epString); - return (*env)->NewStringUTF(env, epString); -} - -JNIEXPORT jstring JNICALL -Java_gsfc_nssdc_cdf_util_EpochNative_encode1(JNIEnv *env, - jobject obj, - jdouble epoch) { - - char epString[EPOCH1_STRING_LEN+1]; - - encodeEPOCH1(epoch, epString); - return (*env)->NewStringUTF(env, epString); -} - -JNIEXPORT jstring JNICALL -Java_gsfc_nssdc_cdf_util_EpochNative_encode2(JNIEnv *env, - jobject obj, - jdouble epoch) { - - char epString[EPOCH2_STRING_LEN+1]; - - encodeEPOCH2(epoch, epString); - return (*env)->NewStringUTF(env, epString); -} - -JNIEXPORT jstring JNICALL -Java_gsfc_nssdc_cdf_util_EpochNative_encode3(JNIEnv *env, - jobject obj, - jdouble epoch) { - - char epString[EPOCH3_STRING_LEN+1]; - - encodeEPOCH3(epoch, epString); - return (*env)->NewStringUTF(env, epString); -} - -JNIEXPORT jstring JNICALL -Java_gsfc_nssdc_cdf_util_EpochNative_encode4(JNIEnv *env, - jobject obj, - jdouble epoch) { - - char epString[EPOCH4_STRING_LEN+1]; - - encodeEPOCH4(epoch, epString); - return (*env)->NewStringUTF(env, epString); -} - -JNIEXPORT jstring JNICALL -Java_gsfc_nssdc_cdf_util_EpochNative_encodex(JNIEnv *env, - jobject obj, - jdouble epoch, - jstring format) { - - char epString[EPOCH3_STRING_LEN+1]; - const char *formatString = (*env)->GetStringUTFChars(env, format, 0); - - encodeEPOCHx (epoch, (char *)formatString, epString); - (*env)->ReleaseStringUTFChars(env, format, formatString); - return (*env)->NewStringUTF(env, epString); -} - -JNIEXPORT jdouble JNICALL -Java_gsfc_nssdc_cdf_util_EpochNative_parse(JNIEnv *env, - jclass obj, - jstring sEpoch) { - - jdouble millis; - const char *epochString = (*env)->GetStringUTFChars(env, sEpoch, 0); - millis = parseEPOCH((char *)epochString); - (*env)->ReleaseStringUTFChars(env, sEpoch, epochString); - - return millis; -} - -JNIEXPORT jdouble JNICALL -Java_gsfc_nssdc_cdf_util_EpochNative_parse1(JNIEnv *env, - jclass obj, - jstring sEpoch) { - - jdouble millis; - const char *epochString = (*env)->GetStringUTFChars(env, sEpoch, 0); - millis = parseEPOCH1((char *)epochString); - (*env)->ReleaseStringUTFChars(env, sEpoch, epochString); - - return millis; -} - -JNIEXPORT jdouble JNICALL -Java_gsfc_nssdc_cdf_util_EpochNative_parse2(JNIEnv *env, - jclass obj, - jstring sEpoch) { - - jdouble millis; - const char *epochString = (*env)->GetStringUTFChars(env, sEpoch, 0); - millis = parseEPOCH2((char *)epochString); - (*env)->ReleaseStringUTFChars(env, sEpoch, epochString); - - return millis; -} - -JNIEXPORT jdouble JNICALL -Java_gsfc_nssdc_cdf_util_EpochNative_parse3(JNIEnv *env, - jclass obj, - jstring sEpoch) { - - jdouble millis; - const char *epochString = (*env)->GetStringUTFChars(env, sEpoch, 0); - millis = parseEPOCH3((char *)epochString); - (*env)->ReleaseStringUTFChars(env, sEpoch, epochString); - - return millis; -} diff --git a/cdf36_3-dist/cdfjava/jni/cdfNativeLibrary.h b/cdf36_3-dist/cdfjava/jni/cdfNativeLibrary.h deleted file mode 100644 index 835def3..0000000 --- a/cdf36_3-dist/cdfjava/jni/cdfNativeLibrary.h +++ /dev/null @@ -1,134 +0,0 @@ -/****************************************************************************** -* Copyright 1996-2014 United States Government as represented by the -* Administrator of the National Aeronautics and Space Administration. -* All Rights Reserved. -******************************************************************************/ -/* DO NOT EDIT THIS FILE - it is machine generated */ -/* --- Epoch routine names need to be consistent with the C and Fortran APIs */ -#include -/* Header for class gsfc_nssdc_cdf_CDFNativeLibrary */ - -#ifndef _Included_gsfc_nssdc_cdf_CDFNativeLibrary -#define _Included_gsfc_nssdc_cdf_CDFNativeLibrary -#ifdef __cplusplus -extern "C" { -#endif -/* - * Class: gsfc_nssdc_cdf_CDFNativeLibrary - * Method: cdfNativeLib - * Signature: (Lgsfc/nssdc/cdf/CDF;Lgsfc/nssdc/cdf/CDFObject;Ljava/util/Vector;)V - */ -JNIEXPORT void JNICALL Java_gsfc_nssdc_cdf_CDFNativeLibrary_cdfNativeLib - (JNIEnv *, jobject, jobject, jobject, jobject); - -#ifdef __cplusplus -} -#endif -#endif -/* Header for class gsfc_nssdc_cdf_util_EpochNative */ - -#ifndef _Included_gsfc_nssdc_cdf_util_EpochNative -#define _Included_gsfc_nssdc_cdf_util_EpochNative -#ifdef __cplusplus -extern "C" { -#endif -/* - * Class: gsfc_nssdc_cdf_util_EpochNative - * Method: compute - * Signature: (JJJJJJJ)D - */ -JNIEXPORT jdouble JNICALL Java_gsfc_nssdc_cdf_util_EpochNative_compute - (JNIEnv *, jclass, jlong, jlong, jlong, jlong, jlong, jlong, jlong); - -/* - * Class: gsfc_nssdc_cdf_util_EpochNative - * Method: breakdown - * Signature: (D)[J - */ -JNIEXPORT jlongArray JNICALL Java_gsfc_nssdc_cdf_util_EpochNative_breakdown - (JNIEnv *, jclass, jdouble); - -/* - * Class: gsfc_nssdc_cdf_util_EpochNative - * Method: encode - * Signature: (D)Ljava/lang/String; - */ -JNIEXPORT jstring JNICALL Java_gsfc_nssdc_cdf_util_EpochNative_encode - (JNIEnv *, jclass, jdouble); - -/* - * Class: gsfc_nssdc_cdf_util_EpochNative - * Method: encode1 - * Signature: (D)Ljava/lang/String; - */ -JNIEXPORT jstring JNICALL Java_gsfc_nssdc_cdf_util_EpochNative_encode1 - (JNIEnv *, jclass, jdouble); - -/* - * Class: gsfc_nssdc_cdf_util_EpochNative - * Method: encode2 - * Signature: (D)Ljava/lang/String; - */ -JNIEXPORT jstring JNICALL Java_gsfc_nssdc_cdf_util_EpochNative_encode2 - (JNIEnv *, jclass, jdouble); - -/* - * Class: gsfc_nssdc_cdf_util_EpochNative - * Method: encode3 - * Signature: (D)Ljava/lang/String; - */ -JNIEXPORT jstring JNICALL Java_gsfc_nssdc_cdf_util_EpochNative_encode3 - (JNIEnv *, jclass, jdouble); - -/* - * Class: gsfc_nssdc_cdf_util_EpochNative - * Method: encode4 - * Signature: (D)Ljava/lang/String; - */ -JNIEXPORT jstring JNICALL Java_gsfc_nssdc_cdf_util_EpochNative_encode4 - (JNIEnv *, jclass, jdouble); - -/* - * Class: gsfc_nssdc_cdf_util_EpochNative - * Method: encodex - * Signature: (DLjava/lang/String;)Ljava/lang/String; - */ -JNIEXPORT jstring JNICALL Java_gsfc_nssdc_cdf_util_EpochNative_encodex - (JNIEnv *, jclass, jdouble, jstring); - -/* - * Class: gsfc_nssdc_cdf_util_EpochNative - * Method: parse - * Signature: (Ljava/lang/String;)D - */ -JNIEXPORT jdouble JNICALL Java_gsfc_nssdc_cdf_util_EpochNative_parse - (JNIEnv *, jclass, jstring); - -/* - * Class: gsfc_nssdc_cdf_util_EpochNative - * Method: parse1 - * Signature: (Ljava/lang/String;)D - */ -JNIEXPORT jdouble JNICALL Java_gsfc_nssdc_cdf_util_EpochNative_parse1 - (JNIEnv *, jclass, jstring); - -/* - * Class: gsfc_nssdc_cdf_util_EpochNative - * Method: parse2 - * Signature: (Ljava/lang/String;)D - */ -JNIEXPORT jdouble JNICALL Java_gsfc_nssdc_cdf_util_EpochNative_parse2 - (JNIEnv *, jclass, jstring); - -/* - * Class: gsfc_nssdc_cdf_util_EpochNative - * Method: parse3 - * Signature: (Ljava/lang/String;)D - */ -JNIEXPORT jdouble JNICALL Java_gsfc_nssdc_cdf_util_EpochNative_parse3 - (JNIEnv *, jclass, jstring); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/cdf36_3-dist/cdfjava/jni/cdfjava.h b/cdf36_3-dist/cdfjava/jni/cdfjava.h deleted file mode 100644 index 917f042..0000000 --- a/cdf36_3-dist/cdfjava/jni/cdfjava.h +++ /dev/null @@ -1,112 +0,0 @@ -/* $Id: cdfjava.h,v 1.1.1.1 2016/10/12 19:21:25 liu Exp $ - * - */ -/****************************************************************************** -* Copyright 1996-2014 United States Government as represented by the -* Administrator of the National Aeronautics and Space Administration. -* All Rights Reserved. -******************************************************************************/ - -#include -#include -#include "cdfNativeLibrary.h" - -/****************************************/ -/* Max # of elements CmdVector can hold */ -/****************************************/ -#define MAX_VECTOR_SIZE 100 - -/****************************************** - * CDFObject Types - ******************************************/ -#define CDFOBJECT_CLASS 0L -#define CDF_CLASS 1L -#define FILE_CLASS 2L -#define VAR_CLASS 3L -#define ENTRY_CLASS 4L -#define DATA_CLASS 5L -#define ATTR_CLASS 6L - -/****************************************** - * Should this be added to cdf.h? - ******************************************/ -/* #define SAVE_ 1009 */ -/* #define BACKWARD_ 1010 */ -/* #define GETCDFFILEBACKWARD_ 1011 */ - -/*********************************************** - * Offset for big/little-endian. - * If NETWORKbyteORDERcpu is defined in - * cdflib.h, then it is a big-endian machine. - ***********************************************/ - -#if defined(NETWORKbyteORDERcpu) -#define LONGOFFSET 4 -#define INTOFFSET 2 -#define SHORTOFFSET 1 -#else -#define LONGOFFSET 0 -#define INTOFFSET 0 -#define SHORTOFFSET 0 -#endif - - -/* - * Macro definitions: - */ -#define CheckStatus(msg,flag) ErrorHandler(msg, status, env, theCDF, flag) - -#define isItem(obj) ((*env)->IsInstanceOf(env, obj, \ - (*env)->FindClass(env, "java/util/Vector"))) == JNI_FALSE - -#define CHECKNULL(a,v) \ - if ( v == NULL ) { \ - char message[1024]; \ - sprintf( message, "%s is NULL!", a ); \ - (*env)->ThrowNew( env, (*env)->FindClass( env, "java/lang/NullPointerException" ), \ - message );\ - return (BAD_FNC_OR_ITEM); \ - } - -#define MYDEBUG(f,m) \ - if (mydebug) { printf("%-15s: %s\n", f, m); } - -/******************************************************************* - * Structure that is used to hold information about argument - * (e.g. id, name, etc.) - ******************************************************************/ -typedef struct argStruct { - jobject myObject; /* The object that the instance var is a member of */ - jfieldID id; /* The field ID of the instance var */ - jobject nameObject; /* The name string object. Needed for memory management */ - const char *name; /* The name of the argument as a C string */ - jobject sigObject; /* The sig string object. Needed for memory management */ - const char *sig; /* The signature of the arg as a C string */ - void *ptr; /* A pointer to the arg in C */ - jstring tempString; /* Temp string object needed to handle memory for instance - vars that are Strings */ - jboolean isArray; /* JNI_FALSE = not an array, JNI_TRUE = is an array */ - jboolean isEntryorVariableData; /* Is arg an Entry/Variable data */ - jobject dsObject; /* If entryData then this is the actual data signature - Since in the "data" instance var is a generic - java/lang/Object we need 2 signatures. The actual signature - "Ljava/lang/Object;" to get the data and this one to build - and get the data out. */ - const char *datasig; /* The signature of the entry "data" as a C string */ - jsize length; /* = numElements */ - jsize numDims; - long dimSizes[CDF_MAX_DIMS]; - char Csig[25]; -} argument; - -/************************************************************************ - * Structure that is used to hold information about the CDF file. - * (e.g. id, name, etc.) - ************************************************************************/ -typedef struct cdfIDStruct { - CDFid id; /* The CDFid from open or create function */ - jlong jid; /* Where it is in the link list structure */ - int nCDFs; /* Reseved for future use */ - jboolean open; /* flag indicating whether CDF is still open */ - struct cdfIDStruct *next; /* A pointer to the next item in the list */ -} cdfIDList; diff --git a/cdf36_3-dist/cdfjava/lib/.empty b/cdf36_3-dist/cdfjava/lib/.empty deleted file mode 100644 index e69de29..0000000 diff --git a/cdf36_3-dist/checkleapseconds.sh b/cdf36_3-dist/checkleapseconds.sh deleted file mode 100755 index c6b6cf6..0000000 --- a/cdf36_3-dist/checkleapseconds.sh +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -echo Checking for the leap second table... -local_url=`printenv CDF_LEAPSECONDSTABLE` -if [ -z "$local_url" ]; then - echo CDF_LEAPSECONDSTABLE environment variable is not defined... - echo Internal hard-coded leap second table may be used... - if [ -n "$CDF_BIN" ]; then - result=`$CDF_BIN/cdfleapsecondsinfo -nodump` - local_leap=`echo $result | cut -d " " -f31` - else - echo "Enter the latest, installed CDF directory: "; - read ls_folder - if [ -f "$ls_folder/CDFLeapSeconds.txt" ]; then - local_leap=`tail -1 $ls_folder/CDFLeapSeconds.txt | awk '{ print $1"-"$2"-"$3 }'` - else - echo "Error... CDF installation not found in $ls_folder." - exit 0; - fi - fi -else - local_leap=`tail -1 ${local_url}| awk '{ print $1"-"$2"-"$3 }'`; - ls_folder=`dirname $local_url` -fi -remote_url="http://cdf.gsfc.nasa.gov/html/CDFLeapSeconds.txt" -isCurlAvail=`which curl` -if [ `echo "$isCurlAvail" | grep -c "no "` -eq 1 ]; then - `wget -q -O /tmp/CDFLeapSeconds.txt ${remote_url}` - if [ $? -ne 0 ]; then - echo "Error... ${remote_url} not found."; - exit 0; - fi -else - `curl -s -o /tmp/CDFLeapSeconds.txt ${remote_url}` - if [ $? -ne 0 ]; then - echo "Error... ${remote_url} not found."; - exit 0; - fi -fi -remote_leap=`tail -1 /tmp/CDFLeapSeconds.txt | awk '{ print $1"-"$2"-"$3 }'` -lyear=`echo $local_leap | cut -d- -f1` -lmonth=`echo $local_leap | cut -d- -f2` -lday=`echo $local_leap | cut -d- -f3` -ryear=`echo $remote_leap | cut -d- -f1` -rmonth=`echo $remote_leap | cut -d- -f2` -rday=`echo $remote_leap | cut -d- -f3` -localdate=`expr $lyear*10000+$lmonth*100+$lday | bc` -remotedate=`expr $ryear*10000+$rmonth*100+$rday | bc` -if [ $localdate -lt $remotedate ]; then - echo "" - echo "Newer leap second(s) had been added to CDFLeapSeconds.txt at the CDF" - echo "home page. Please update your CDF installation that includes the" - echo "latest CDFLeapSeconds.txt from http://cdf.gsfc.nasa.gov." - echo "" -else - if [ $localdate -eq $remotedate ]; then - echo "" - echo "Local CDFLeapSeconds.txt in $ls_folder is up-to-date." - echo "" - else - echo "" - echo "Local CDFLeapSeconds.txt in $ls_folder has a newer leap second(s)" - echo "than the one at the CDF home page." - echo "" - fi -fi diff --git a/cdf36_3-dist/modify_definition_files.sh b/cdf36_3-dist/modify_definition_files.sh deleted file mode 100755 index 9009f38..0000000 --- a/cdf36_3-dist/modify_definition_files.sh +++ /dev/null @@ -1,51 +0,0 @@ -#! /bin/bash -search="" -replace=$1 # Current working directory -whichos=`uname` -case "$whichos" in - CYGWIN*) topath=1;; - MINGW*) topath=1;; - Darwin*) topath=2;; - * ) topath=0;; -esac -for file in `ls $replace/bin/definitions.*` -do -# extension=`echo $file | cut -f2 -d"."` - extension="${file:${#file}-1}" - if [ $topath -eq 1 ]; then - if [ $extension == "B" ] || [ $extension == "K" ]; then - echo "export PATH=\"$search/lib:$PATH\"" >> $file - else - echo "setenv PATH \"$search/lib:$PATH\"" >> $file - fi - elif [ $topath -eq 2 ]; then - if [ $extension == "B" ] || [ $extension == "K" ]; then - echo "export DYLD_LIBRARY_PATH=$search/lib" >> $file - else - echo "setenv DYLD_LIBRARY_PATH $search/lib" >> $file - fi - else - if [ $extension == "B" ] || [ $extension == "K" ]; then - echo "export LD_LIBRARY_PATH=$search/lib" >> $file - else - echo "setenv LD_LIBRARY_PATH $search/lib" >> $file - fi - fi - echo "Modifying the definition file $file .." - if `type ed > /dev/null 2>&1` - then - ed - $file << editend - 1,\$s:$search:$replace:g - w - q -editend - elif `type sed > /dev/null 2>&1` - then - sed -e "s,$search,$replace,g" < $file > $file.new - mv $file.new $file - else - echo Not modified... as both "ed" and "sed" line editor not installed. - echo Use any available text editor to manually modify "$search" to "$replace". - fi -done - diff --git a/cdf36_3-dist/samples/OperateAttributes.c b/cdf36_3-dist/samples/OperateAttributes.c deleted file mode 100644 index eb2ca38..0000000 --- a/cdf36_3-dist/samples/OperateAttributes.c +++ /dev/null @@ -1,375 +0,0 @@ -/****************************************************************************** -* -* SPDF/CDF Sample program for operating attributes/entries in a CDF. -* -* Version 1.0, 09-Dec-05 -* -* Modification history: -* -* V1.0 09-Dec-05, M Liu Original version (for CDF V3.1). -* A simple program to add and delete -* attributes/entries to and from a CDF. -* The global attributes apply to the CDF as a -* whole, variable attributes -* apply to variables, zVariables in this sample -* program. It also shows how to respecify and -* verify the specifications of the entries. -******************************************************************************/ - -#include -#include -#include - -#include "cdf.h" - -#define EXIT_SUCCESS_ 0 -#define EXIT_FAILURE_ 1 - -/****************************************************************************** -* Macros/prototypes. -******************************************************************************/ - -void QuitCDF PROTOARGs((char *where, CDFstatus status)); - -/****************************************************************************** -* Main. -******************************************************************************/ - -int main () { -CDFid id; -CDFstatus status; -static long dimSizes[1] = { 2 }; -static long dimSizes1[2] = { 2, 3 }; -static long dimSizes2[1] = { 5 }; -static long var1DataType = { CDF_INT2 }; -static long var2DataType = { CDF_CHAR }; -static long var1NumElements = { 1 }; -static long var2NumElements = { 8 }; -long var1Num_out, var2Num_out; -static long var1RecVariance = { VARY }; -static long var2RecVariance = { VARY }; -static long var1DimVariances[2] = { VARY, VARY }; -static long var2DimVariances[1] = { VARY }; -static char var1Name[] = "VAR1a"; -static char var2Name[] = "zVARa1"; -long attrNum_out; -static long entryNum = { 2 }; -long maxEntry_out; -static long attrScope = { GLOBAL_SCOPE }; -static long attrScope2 = { VARIABLE_SCOPE }; -static long attrScope3 = { VARIABLE_SCOPE }; -long attrScope_out; -static long entryDataType = { CDF_INT2 }; -static long entryDataTypeNew = { CDF_UINT2 }; -long entryDataType_out; -static long entryNumElems = { 1 }; -long entryNumElems_out; -static short entryValue = { 1 }; -short entryValue_out; -long numAttrs_out; -int i; -static char attrName[] = "ATTR1"; -static char attrName2[] = "ATTR2"; -static char attrName3[] = "ATTR3"; -static char new_attrName[] = "ATTR1a"; -char attrName_out[CDF_ATTR_NAME_LEN256]; -static char zEntryValue1 = { 4 }; -char zEntryValueOut1; -static double zEntryValue2 = { 4.0 }; -double zEntryValueOut2; -long maxGentry, numGentries, - maxZentry, numZentries, numGattrs, numVattrs; -long entryNumOut1, entryNumOut2, entryNumOut3; - -/****************************************************************************** -* Create CDF. -******************************************************************************/ -/* CDFsetFileBackwardFlag(BACKWARDFILEon); */ -status = CDFlib (CREATE_, CDF_, "TEST", 0L, dimSizes, &id, - NULL_); - -if (status < CDF_OK) { - if (status == CDF_EXISTS) { - status = CDFlib (OPEN_, CDF_, "TEST", &id, - NULL_); - if (status < CDF_OK) QuitCDF ("1.0", status); - - status = CDFlib (DELETE_, CDF_, - NULL_); - if (status < CDF_OK) QuitCDF ("1.1", status); - - status = CDFlib (CREATE_, CDF_, "TEST", 0L, dimSizes, &id, - NULL_); - if (status < CDF_OK) QuitCDF ("1.2", status); - } - else - QuitCDF ("1.3", status); -} - -/****************************************************************************** -* Create variables. -******************************************************************************/ - -status = CDFlib (CREATE_, zVAR_, var1Name, var1DataType, var1NumElements, - 2L, dimSizes1, - var1RecVariance, var1DimVariances, - &var1Num_out, - NULL_); -if (status < CDF_OK) QuitCDF ("2.0", status); - -status = CDFlib (CREATE_, zVAR_, var2Name, var2DataType, var2NumElements, - 1L, dimSizes2, - var2RecVariance, var2DimVariances, - &var2Num_out, - NULL_); -if (status < CDF_OK) QuitCDF ("2.1", status); - -/****************************************************************************** -* Create attributes. -******************************************************************************/ - -status = CDFlib (CREATE_, ATTR_, attrName, attrScope, &attrNum_out, - ATTR_, attrName2, attrScope2, &attrNum_out, - ATTR_, attrName3, attrScope3, &attrNum_out, - NULL_); -if (status < CDF_OK) QuitCDF ("3.0", status); - -/****************************************************************************** -* Write to attributes. -******************************************************************************/ - -status = CDFlib (SELECT_, ATTR_, 0L, - gENTRY_, entryNum, - PUT_, gENTRY_DATA_, entryDataType, entryNumElems, - &entryValue, - SELECT_, ATTR_, 1L, - zENTRY_NAME_, var1Name, - PUT_, zENTRY_DATA_, CDF_BYTE, 1L, &zEntryValue1, - SELECT_, ATTR_, 2L, - zENTRY_NAME_, var2Name, - PUT_, zENTRY_DATA_, CDF_REAL8, 1L, &zEntryValue2, - NULL_); -if (status < CDF_OK) QuitCDF ("4.0", status); - -/****************************************************************************** -* Confirm entry numbers. -******************************************************************************/ - -status = CDFlib (SELECT_, ATTR_, 0L, - CONFIRM_, gENTRY_, &entryNumOut1, - SELECT_, ATTR_, 1L, - CONFIRM_, zENTRY_, &entryNumOut2, - SELECT_, ATTR_, 2L, - CONFIRM_, zENTRY_, &entryNumOut3, - NULL_); -if (status < CDF_OK) QuitCDF ("5.0", status); - -if (entryNumOut1 != 2) QuitCDF ("5.1", status); -if (entryNumOut2 != 1) QuitCDF ("5.2", status); -if (entryNumOut3 != 1) QuitCDF ("5.3", status); - -/****************************************************************************** -* Read from attributes. -******************************************************************************/ - -status = CDFlib (SELECT_, ATTR_, 0L, - gENTRY_, entryNum, - CONFIRM_, CURgENTRY_EXISTENCE_, - GET_, gENTRY_DATA_, &entryValue_out, - SELECT_, ATTR_, 1L, - zENTRY_, 0L, - CONFIRM_, CURzENTRY_EXISTENCE_, - GET_, zENTRY_DATA_, &zEntryValueOut1, - SELECT_, ATTR_, 2L, - zENTRY_, 1L, - CONFIRM_, CURzENTRY_EXISTENCE_, - GET_, zENTRY_DATA_, &zEntryValueOut2, - NULL_); -if (status < CDF_OK) QuitCDF ("6.0", status); - -if (entryValue_out != entryValue) QuitCDF ("6.1", status); -if (zEntryValue1 != zEntryValueOut1) QuitCDF ("6.2", status); -if (zEntryValue2 != zEntryValueOut2) QuitCDF ("6.3", status); - -/****************************************************************************** -* Confirm existence of attributes/entries. -******************************************************************************/ - -status = CDFlib (CONFIRM_, ATTR_EXISTENCE_, attrName3, - NULL_); -if (status < CDF_OK) QuitCDF ("7.0", status); - -status = CDFlib (SELECT_, ATTR_, 0L, - CONFIRM_, gENTRY_EXISTENCE_, entryNum, - SELECT_, ATTR_, 1L, - CONFIRM_, zENTRY_EXISTENCE_, 0L, - SELECT_, ATTR_, 2L, - CONFIRM_, zENTRY_EXISTENCE_, 1L, - NULL_); -if (status < CDF_OK) QuitCDF ("7.1", status); - -/****************************************************************************** -* Inquire CDF. -******************************************************************************/ - -status = CDFlib (GET_, CDF_NUMATTRS_, &numAttrs_out, - NULL_); -if (status < CDF_OK) QuitCDF ("8.0", status); - -if (numAttrs_out != 3) QuitCDF ("8.1", status); - -/****************************************************************************** -* Rename attribute. -******************************************************************************/ - -status = CDFlib (SELECT_, ATTR_NAME_, attrName, - PUT_, ATTR_NAME_, new_attrName, - NULL_); -if (status < CDF_OK) QuitCDF ("9.0", status); - -/****************************************************************************** -* Inquire attribute. -******************************************************************************/ - -status = CDFlib (GET_, ATTR_NAME_, attrName_out, - ATTR_SCOPE_, &attrScope_out, - ATTR_MAXgENTRY_, &maxEntry_out, - CONFIRM_, ATTR_, &attrNum_out, - NULL_); -if (status < CDF_OK) QuitCDF ("10.0", status); - -if (strcmp(attrName_out,new_attrName) != 0) QuitCDF ("10.1", status); -if (attrScope_out != attrScope) QuitCDF ("10.2", status); -if (maxEntry_out != entryNum) QuitCDF ("10.3", status); -if (attrNum_out != 0L) QuitCDF ("10.4", status); - -/****************************************************************************** -* Inquire attribute entries. -******************************************************************************/ - -status = CDFlib (SELECT_, ATTR_, 0L, - gENTRY_, entryNum, - GET_, gENTRY_DATATYPE_, &entryDataType_out, - gENTRY_NUMELEMS_, &entryNumElems_out, - NULL_); -if (status < CDF_OK) QuitCDF ("11.0", status); - -if (entryDataType_out != entryDataType) QuitCDF ("11.1", status); -if (entryNumElems_out != entryNumElems) QuitCDF ("11.2", status); - -status = CDFlib (SELECT_, ATTR_, 1L, - zENTRY_, 0L, - GET_, zENTRY_DATATYPE_, &entryDataType_out, - zENTRY_NUMELEMS_, &entryNumElems_out, - NULL_); -if (status < CDF_OK) QuitCDF ("11.3", status); - -if (entryDataType_out != CDF_BYTE) QuitCDF ("11.4", status); -if (entryNumElems_out != 1L) QuitCDF ("11.5", status); - -status = CDFlib (SELECT_, ATTR_, 2L, - zENTRY_, 1L, - GET_, zENTRY_DATATYPE_, &entryDataType_out, - zENTRY_NUMELEMS_, &entryNumElems_out, - NULL_); -if (status < CDF_OK) QuitCDF ("11.6", status); - -if (entryDataType_out != CDF_REAL8) QuitCDF ("11.7", status); -if (entryNumElems_out != 1L) QuitCDF ("11.8", status); - -/****************************************************************************** -* Inquire CDF. -******************************************************************************/ - -status = CDFlib (SELECT_, ATTR_, 0L, - GET_, CDF_NUMgATTRS_, &numGattrs, - CDF_NUMvATTRS_, &numVattrs, - ATTR_MAXgENTRY_, &maxGentry, - ATTR_NUMgENTRIES_, &numGentries, - SELECT_, ATTR_, 1L, - GET_, ATTR_MAXzENTRY_, &maxZentry, - ATTR_NUMzENTRIES_, &numZentries, - NULL_); -if (status < CDF_OK) QuitCDF ("12.0", status); - -if (numGattrs != 1) QuitCDF ("12.1", status); -if (numVattrs != 2) QuitCDF ("12.2", status); -if (maxGentry != entryNum) QuitCDF ("12.3", status); -if (numGentries != 1) QuitCDF ("12.4", status); -if (maxZentry != 0) QuitCDF ("12.5", status); -if (numZentries != 1) QuitCDF ("12.6", status); - -/****************************************************************************** -* Modify entries/attribute. -******************************************************************************/ - -status = CDFlib (SELECT_, ATTR_, 0L, - gENTRY_, entryNum, - PUT_, gENTRY_DATASPEC_, entryDataTypeNew, entryNumElems, - SELECT_, ATTR_, 1L, - zENTRY_, 0L, - PUT_, zENTRY_DATASPEC_, CDF_UINT1, 1L, - SELECT_, ATTR_, 2L, - zENTRY_, 1L, - PUT_, zENTRY_DATASPEC_, CDF_EPOCH, 1L, - SELECT_, ATTR_, 0L, - PUT_, ATTR_SCOPE_, VARIABLE_SCOPE, - ATTR_SCOPE_, GLOBAL_SCOPE, - NULL_); -if (status < CDF_OK) QuitCDF ("13.0", status); - -/****************************************************************************** -* Delete entries/attribute/variables. -******************************************************************************/ - -status = CDFlib (SELECT_, ATTR_, 0L, - gENTRY_, entryNum, - DELETE_, gENTRY_, - SELECT_, ATTR_, 1L, - zENTRY_, 0L, - DELETE_, zENTRY_, - SELECT_, ATTR_, 2L, - zENTRY_, 1L, - DELETE_, zENTRY_, - SELECT_, ATTR_, 0L, - DELETE_, ATTR_, - NULL_); -if (status < CDF_OK) QuitCDF ("14.0", status); - -/****************************************************************************** -* Close CDF. -******************************************************************************/ - -status = CDFlib (CLOSE_, CDF_, - NULL_); -if (status < CDF_OK) QuitCDF ("15.0", status); - -/****************************************************************************** -* Successful completion. -******************************************************************************/ - -return EXIT_SUCCESS_; -} - - -/****************************************************************************** -* QuitCDF. -******************************************************************************/ - -void QuitCDF (where, status) -char *where; -CDFstatus status; -{ - char text[CDF_STATUSTEXT_LEN+1]; - printf ("Aborting at %s...\n", where); - if (status < CDF_OK) { - CDFlib (SELECT_, CDF_STATUS_, status, - GET_, STATUS_TEXT_, text, - NULL_); - printf ("%s\n", text); - } - CDFlib (CLOSE_, CDF_, - NULL_); - printf ("...test aborted.\n"); - exit (EXIT_FAILURE_); -} diff --git a/cdf36_3-dist/samples/OperateCDF.c b/cdf36_3-dist/samples/OperateCDF.c deleted file mode 100644 index 32d4285..0000000 --- a/cdf36_3-dist/samples/OperateCDF.c +++ /dev/null @@ -1,163 +0,0 @@ -/****************************************************************************** -* -* SPDF/CDF Sample program for operating a CDF. -* -* Version 1.0, 09-Dec-05 -* -* Modification history: -* -* V1.0 09-Dec-05, M Liu Original version (for CDF V3.1). -* A simple program to create/delete a CDF and -* modify the CDF specification from the -* defaults. The CDF is created expecting -* zVariable(s), the preferred variable, to be -* added. It also shows how to acquire the -* information from the library being operated -* upon. -* -******************************************************************************/ - -#include -#include -#include - -#include "cdf.h" - -#define EXIT_SUCCESS_ 0 -#define EXIT_FAILURE_ 1 - -/****************************************************************************** -* Macros/prototypes. -******************************************************************************/ - -void QuitCDF PROTOARGs((char *where, CDFstatus status)); - -/****************************************************************************** -* Main. -******************************************************************************/ - -int main () { -CDFid id; -CDFstatus status; -static long encoding = NETWORK_ENCODING; -static long majority = ROW_MAJOR; -static long dimSizes[1] = { 0 }; -static long cType = GZIP_COMPRESSION; -static long cParms[1] = { 5 }; -long version_out; -long release_out; -long increment_out; -char subincrement_out; -long formatOut; -long encoding_out; -long majority_out; -char CopyRightText[CDF_COPYRIGHT_LEN+1]; -static long actual_encoding = NETWORK_ENCODING; - -/****************************************************************************** - * Get library information. - ******************************************************************************/ - -status = CDFlib (GET_, LIB_VERSION_, &version_out, - LIB_RELEASE_, &release_out, - LIB_INCREMENT_, &increment_out, - LIB_subINCREMENT_, &subincrement_out, - LIB_COPYRIGHT_, CopyRightText, - NULL_); -if (status < CDF_OK) QuitCDF ("1.0", status); - -/****************************************************************************** -* Create CDF. -******************************************************************************/ -/* CDFsetFileBackwardFlag(BACKWARDFILEon); */ -status = CDFlib (CREATE_, CDF_, "TEST", 0L, dimSizes, &id, - NULL_); - -if (status < CDF_OK) { - if (status == CDF_EXISTS) { - status = CDFlib (OPEN_, CDF_, "TEST", &id, - NULL_); - if (status < CDF_OK) QuitCDF ("2.0", status); - - status = CDFlib (DELETE_, CDF_, - NULL_); - if (status < CDF_OK) QuitCDF ("2.1", status); - - status = CDFlib (CREATE_, CDF_, "TEST", 0L, dimSizes, &id, - NULL_); - if (status < CDF_OK) QuitCDF ("2.2", status); - } - else - QuitCDF ("1.3", status); -} - -/****************************************************************************** -* Respecify the encoding and majority for the CDF (from its default). -******************************************************************************/ - -status = CDFlib (PUT_, CDF_ENCODING_, encoding, - CDF_MAJORITY_, majority, - NULL_); - -if (status < CDF_OK) QuitCDF ("3.0", status); - -/****************************************************************************** -* Inquire CDF. -******************************************************************************/ - -status = CDFlib (GET_, CDF_FORMAT_, &formatOut, - CDF_ENCODING_, &encoding_out, - CDF_MAJORITY_, &majority_out, - NULL_); -if (status < CDF_OK) QuitCDF ("4.0", status); - -if (formatOut != SINGLE_FILE) QuitCDF ("4.1", status); -if (encoding_out != actual_encoding) QuitCDF ("4.2", status); -if (majority_out != majority) QuitCDF ("4.3", status); - -/****************************************************************************** -* Specify the compression for the CDF. -******************************************************************************/ - -status = CDFlib (PUT_, CDF_COMPRESSION_, cType, cParms, - NULL_); - -if (status < CDF_OK) QuitCDF ("5.0", status); - -/****************************************************************************** -* Close CDF. -******************************************************************************/ - -status = CDFlib (CLOSE_, CDF_, - NULL_); -if (status < CDF_OK) QuitCDF ("6.0", status); - -/****************************************************************************** -* Successful completion. -******************************************************************************/ - -return EXIT_SUCCESS_; -} - - -/****************************************************************************** -* QuitCDF. -******************************************************************************/ - -void QuitCDF (where, status) -char *where; -CDFstatus status; -{ - char text[CDF_STATUSTEXT_LEN+1]; - printf ("Aborting at %s...\n", where); - if (status < CDF_OK) { - CDFlib (SELECT_, CDF_STATUS_, status, - GET_, STATUS_TEXT_, text, - NULL_); - printf ("%s\n", text); - } - CDFlib (CLOSE_, CDF_, - NULL_); - printf ("...test aborted.\n"); - exit (EXIT_FAILURE_); -} diff --git a/cdf36_3-dist/samples/OperateVariables.c b/cdf36_3-dist/samples/OperateVariables.c deleted file mode 100644 index 24f6fb6..0000000 --- a/cdf36_3-dist/samples/OperateVariables.c +++ /dev/null @@ -1,549 +0,0 @@ -/****************************************************************************** -* -* SPDF/CDF Test program for operating variables in a CDF. -* -* Version 1.0, 09-Dec-05 -* -* Modification history: -* -* V1.0 09-Dec-05, M Liu Original version (for CDF V3.1). -* A simple program to create zVariables, the -* preferred variables, to a CDF. It also -* shows how to respecify and verify the -* variable's specification. Data values are -* written to and read from the variables in -* differenet ways. -******************************************************************************/ - -#include -#include -#include - -#include "cdf.h" - -#define EXIT_SUCCESS_ 0 -#define EXIT_FAILURE_ 1 - -/****************************************************************************** -* Macros/prototypes. -******************************************************************************/ - -#define N_DIMS1 2 -#define DIM_0_SIZE1 2 -#define DIM_1_SIZE1 3 - -#define N_DIMS2 1 -#define DIM_0_SIZE2 5 -#define NUM_ELEMS2 8 - -void QuitCDF PROTOARGs((char *where, CDFstatus status)); - -/****************************************************************************** -* Main. -******************************************************************************/ - -int main () { -CDFid id; -CDFstatus status; -int dim_n; -static long numDims1 = N_DIMS1; -static long numDims2 = N_DIMS2; -static long dimSizes[1] = { 0 }; -static long dimSizes1[N_DIMS1] = { DIM_0_SIZE1, DIM_1_SIZE1 }; -static long dimSizes2[N_DIMS2] = { DIM_0_SIZE2 }; -static long var1DataType = { CDF_INT2 }; -static long var1DataTypeNew = { CDF_UINT2 }; -static long var2DataType = { CDF_CHAR }; -static long var2DataTypeNew = { CDF_UCHAR }; -long var1DataType_out, var2DataType_out; -static long var1NumElements = { 1 }; -static long var1NumElementsNew = { 1 }; -static long var2NumElements = { NUM_ELEMS2 }; -static long var2NumElementsNew = { NUM_ELEMS2 }; -long var1NumElements_out, var2NumElements_out; -long var1Num_out, var2Num_out, varNum_out1, varNum_out2; -static short var1Values[DIM_0_SIZE1][DIM_1_SIZE1] = {{1,2,3},{4,5,6}}; -static char var2Values[DIM_0_SIZE2][NUM_ELEMS2] = { - {'1','1','1','1','1','1','1','1'}, - {'2','2','2','2','2','2','2','2'}, - {'3','3','3','3','3','3','3','3'}, - {'4','4','4','4','4','4','4','4'}, - {'5','5','5','5','5','5','5','5'} -}; -short var1Value_out; -static char var2Value_out[NUM_ELEMS2]; -static long recNum = { 0 }; -static long recStart = { 0 }; -static long recCount = { 1 }; -static long recInterval = { 1 }; -long indices[N_DIMS1]; -static long counts[N_DIMS1] = { DIM_0_SIZE1, DIM_1_SIZE1 }; -static long intervals[N_DIMS1] = { 1, 1 }; -static long zRecNum = { 0 }; -static long zRecStart = { 0 }; -static long zRecCount = { 1 }; -static long zRecInterval = { 1 }; -long zIndicesA[N_DIMS2]; -static long zCounts[N_DIMS2] = { DIM_0_SIZE2 }; -static long zIntervals[N_DIMS2] = { 1 }; -short var1Buffer_out[DIM_0_SIZE1][DIM_1_SIZE1]; -char var2Buffer_out[DIM_0_SIZE2][NUM_ELEMS2]; -long numDims1_out; -long dimSizes1_out[N_DIMS1]; -long numDims2_out; -long dimSizes2_out[N_DIMS2]; -long maxRec_out; -long numAttrs_out; -int i, x0, x1, x; -static long var1RecVariance = { VARY }; -static long var1RecVarianceNew = { NOVARY }; -static long var2RecVariance = { VARY }; -static long var2RecVarianceNew = { NOVARY }; -long var1RecVariance_out, var2RecVariance_out; -static long var1DimVariances[N_DIMS1] = { VARY, VARY }; -static long var1DimVariancesNew[N_DIMS1] = { NOVARY, NOVARY }; -static long var2DimVariances[N_DIMS2] = { VARY }; -static long var2DimVariancesNew[N_DIMS2] = { NOVARY }; -long var1DimVariances_out[N_DIMS1], - var2DimVariances_out[N_DIMS2]; -static char var1Name[] = "VAR1a"; -static char var2Name[] = "zVARa1"; -static char new_var1Name[] = "VAR1b"; -static char new_var2Name[] = "zVARa2"; -char var1Name_out[CDF_VAR_NAME_LEN256+1], - var2Name_out[CDF_VAR_NAME_LEN256+1]; -char CopyRightText[CDF_COPYRIGHT_LEN+1]; -char errorText[CDF_STATUSTEXT_LEN+1]; -long numRvars, numZvars; -static short pad1 = { -999 }; -static char pad2[NUM_ELEMS2+1] = { "********" }; -short pad1out; -static char pad2out[NUM_ELEMS2+1] = { " " }; -static long blockingfactor1 = 3; -static long blockingfactor2 = 4; -long blockingfactorOut1, blockingfactorOut2; -long recStartOut, recCountOut, recIntervalOut, recNumOut; -long indicesOut[CDF_MAX_DIMS], - countsOut[CDF_MAX_DIMS], - intervalsOut[CDF_MAX_DIMS]; -int dimN; -long formatOut; -long maxAllocOut1, maxAllocOut2; -long maxRecOut1, maxRecOut2, maxRecOut; -long nIndexRecsOut1, nIndexRecsOut2; -long nIndexEntriesOut1, nIndexEntriesOut2; -static long allocRecs1 = { 10 }; -static long allocRecs2 = { 8 }; -static long nZvars1 = { 1 }; -static long zVarNs1[2] = { 0 }; -static char zVarsRecBuffer1[DIM_0_SIZE1][DIM_1_SIZE1][6] = { - {{0,0,0,0,0,0},{0,0,0,0,0,0},{0,0,0,0,0,0}}, - {{0,0,0,0,0,0},{0,0,0,0,0,0},{0,0,0,0,0,0}} -}; -static char zVarsRecBufferOut1[DIM_0_SIZE1][DIM_1_SIZE1][6]; -static long nZvars2 = { 1 }; -static long zVarNs2[1] = { 1 }; -static char zVarsRecBuffer2[DIM_0_SIZE2][NUM_ELEMS2] = { - {'%','%','%','%','%','%','%','%'}, - {'%','%','%','%','%','%','%','%'}, - {'%','%','%','%','%','%','%','%'}, - {'%','%','%','%','%','%','%','%'}, - {'%','%','%','%','%','%','%','%'} -}; -static char zVarsRecBufferOut2[DIM_0_SIZE2][NUM_ELEMS2]; - -/****************************************************************************** -* Create CDF. -******************************************************************************/ -/* CDFsetFileBackwardFlag(BACKWARDFILEon); */ -status = CDFlib (CREATE_, CDF_, "TEST", 0L, dimSizes, &id, - NULL_); - -if (status < CDF_OK) { - if (status == CDF_EXISTS) { - status = CDFlib (OPEN_, CDF_, "TEST", &id, - NULL_); - if (status < CDF_OK) QuitCDF ("1.0", status); - - status = CDFlib (DELETE_, CDF_, - NULL_); - if (status < CDF_OK) QuitCDF ("1.1", status); - - status = CDFlib (CREATE_, CDF_, "TEST", 0L, dimSizes, &id, - NULL_); - if (status < CDF_OK) QuitCDF ("1.2", status); - } - else - QuitCDF ("1.3", status); -} - -/****************************************************************************** -* Create variables. -******************************************************************************/ - -status = CDFlib (CREATE_, zVAR_, var1Name, var1DataType, var1NumElements, - numDims1, dimSizes1, - var1RecVariance, var1DimVariances, - &var1Num_out, - NULL_); -if (status < CDF_OK) QuitCDF ("2.0", status); - -status = CDFlib (CREATE_, zVAR_, var2Name, var2DataType, var2NumElements, - numDims2, dimSizes2, - var2RecVariance, var2DimVariances, - &var2Num_out, - PUT_, zVAR_ALLOCATERECS_, allocRecs2, - zVAR_BLOCKINGFACTOR_, blockingfactor2, - NULL_); -if (status < CDF_OK) QuitCDF ("2.1", status); - -/****************************************************************************** -* Set/confirm pad values. -******************************************************************************/ - -status = CDFlib (SELECT_, CDF_, id, - zVAR_, var1Num_out, - PUT_, zVAR_PADVALUE_, &pad1, - SELECT_, zVAR_, var2Num_out, - PUT_, zVAR_PADVALUE_, &pad2, - NULL_); -if (status < CDF_OK) QuitCDF ("3.0", status); - -status = CDFlib (SELECT_, zVAR_, var1Num_out, - GET_, zVAR_PADVALUE_, &pad1out, - SELECT_, zVAR_, var2Num_out, - GET_, zVAR_PADVALUE_, &pad2out, - NULL_); -if (status < CDF_OK) QuitCDF ("3.1", status); - -if (pad1out != pad1) QuitCDF ("3.2", status); -if (strcmp(pad2out,pad2)) QuitCDF ("3.3", status); - -/****************************************************************************** -* Write to variables - one value at a time. -******************************************************************************/ - -status = CDFlib (SELECT_, zVAR_, var1Num_out, - zVAR_RECNUMBER_, recNum, - NULL_); -if (status < CDF_OK) QuitCDF ("4.0", status); - -for (x0 = 0; x0 < DIM_0_SIZE1; x0++) - for (x1 = 0; x1 < DIM_1_SIZE1; x1++) { - indices[0] = x0; - indices[1] = x1; - status = CDFlib (SELECT_, zVAR_DIMINDICES_, indices, - PUT_, zVAR_DATA_, &var1Values[x0][x1], - NULL_); - if (status < CDF_OK) QuitCDF ("4.1", status); -} - -status = CDFlib (SELECT_, zVAR_, var2Num_out, - zVAR_RECNUMBER_, zRecNum, - NULL_); -if (status < CDF_OK) QuitCDF ("4.2", status); - -for (x0 = 0; x0 < DIM_0_SIZE2; x0++) { - zIndicesA[0] = x0; - status = CDFlib (SELECT_, zVAR_DIMINDICES_, zIndicesA, - PUT_, zVAR_DATA_, var2Values[x0], - NULL_); - if (status < CDF_OK) QuitCDF ("4.3", status); -} - -/****************************************************************************** -* Read/verify for the variables - one value at a time. -******************************************************************************/ - -status = CDFlib (SELECT_, zVAR_, var1Num_out, - zVAR_RECNUMBER_, recNum, - NULL_); -if (status < CDF_OK) QuitCDF ("5.0", status); - -for (x0 = 0; x0 < DIM_0_SIZE1; x0++) - for (x1 = 0; x1 < DIM_1_SIZE1; x1++) { - indices[0] = x0; - indices[1] = x1; - status = CDFlib (SELECT_, zVAR_DIMINDICES_, indices, - GET_, zVAR_DATA_, &var1Value_out, - NULL_); - if (status < CDF_OK) QuitCDF ("5.1", status); - - if (var1Value_out != var1Values[x0][x1]) QuitCDF ("5.2", status); - } - -status = CDFlib (SELECT_, zVAR_, var2Num_out, - zVAR_RECNUMBER_, zRecNum, - NULL_); -if (status < CDF_OK) QuitCDF ("5.3", status); - -for (x0 = 0; x0 < DIM_0_SIZE2; x0++) { - zIndicesA[0] = x0; - status = CDFlib (SELECT_, zVAR_DIMINDICES_, zIndicesA, - GET_, zVAR_DATA_, var2Value_out, - NULL_); - if (status < CDF_OK) QuitCDF ("5.4", status); - - for (i = 0; i < NUM_ELEMS2; i++) { - if (var2Value_out[i] != var2Values[x0][i]) QuitCDF ("5.5", status); - } -} - -/****************************************************************************** -* HyperPUT to the variables - one full record at a time. -******************************************************************************/ - -for (x0 = 0; x0 < DIM_0_SIZE1; x0++) - for (x1 = 0; x1 < DIM_1_SIZE1; x1++) { - var1Values[x0][x1] = -var1Values[x0][x1]; - } - -indices[0] = 0; -indices[1] = 0; - -status = CDFlib (SELECT_, zVAR_, var1Num_out, - zVAR_RECNUMBER_, recStart, - zVAR_RECCOUNT_, recCount, - zVAR_RECINTERVAL_, recInterval, - zVAR_DIMINDICES_, indices, - zVAR_DIMCOUNTS_, counts, - zVAR_DIMINTERVALS_, intervals, - zVAR_, var1Num_out, - PUT_, zVAR_HYPERDATA_, var1Values, - NULL_); -if (status < CDF_OK) QuitCDF ("6.0", status); - -for (x0 = 0; x0 < DIM_0_SIZE2; x0++) - for (i = 0; i < NUM_ELEMS2; i++) { - var2Values[x0][i]++; - } - -zIndicesA[0] = 0; - -status = CDFlib (SELECT_, zVAR_, var2Num_out, - zVAR_RECNUMBER_, zRecStart, - zVAR_RECCOUNT_, zRecCount, - zVAR_RECINTERVAL_, zRecInterval, - zVAR_DIMINDICES_, zIndicesA, - zVAR_DIMCOUNTS_, zCounts, - zVAR_DIMINTERVALS_, zIntervals, - PUT_, zVAR_HYPERDATA_, var2Values, - NULL_); -if (status < CDF_OK) QuitCDF ("6.1", status); - -/****************************************************************************** -* HyperGET/verify for variables - one record at a time. -******************************************************************************/ - -status = CDFlib (SELECT_, zVAR_, var1Num_out, - zVAR_RECNUMBER_, recStart, - zVAR_RECCOUNT_, recCount, - zVAR_RECINTERVAL_, recInterval, - zVAR_DIMINDICES_, indices, - zVAR_DIMCOUNTS_, counts, - zVAR_DIMINTERVALS_, intervals, - zVAR_, var1Num_out, - GET_, zVAR_HYPERDATA_, var1Buffer_out, - NULL_); -if (status < CDF_OK) QuitCDF ("7.0", status); - -for (x0 = 0; x0 < DIM_0_SIZE1; x0++) - for (x1 = 0; x1 < DIM_1_SIZE1; x1++) { - if (var1Buffer_out[x0][x1] != var1Values[x0][x1]) - QuitCDF ("7.1", status); - } - -status = CDFlib (SELECT_, zVAR_, var2Num_out, - zVAR_RECNUMBER_, zRecStart, - zVAR_RECCOUNT_, zRecCount, - zVAR_RECINTERVAL_, zRecInterval, - zVAR_DIMINDICES_, zIndicesA, - zVAR_DIMCOUNTS_, zCounts, - zVAR_DIMINTERVALS_, zIntervals, - GET_, zVAR_HYPERDATA_, var2Buffer_out, - NULL_); -if (status < CDF_OK) QuitCDF ("7.2", status); - -for (x0 = 0; x0 < DIM_0_SIZE2; x0++) - for (i = 0; i < NUM_ELEMS2; i++) { - if (var2Buffer_out[x0][i] != var2Values[x0][i]) - QuitCDF ("7.3", status); - } - -/****************************************************************************** -* Confirm hyper parameters for a zVariable. -******************************************************************************/ - -status = CDFlib (CONFIRM_, zVAR_RECNUMBER_, &recStartOut, - zVAR_RECCOUNT_, &recCountOut, - zVAR_RECINTERVAL_, &recIntervalOut, - zVAR_DIMINDICES_, indicesOut, - zVAR_DIMCOUNTS_, countsOut, - zVAR_DIMINTERVALS_, intervalsOut, - NULL_); -if (status < CDF_OK) QuitCDF ("8.0", status); - -if (recStartOut != zRecStart) QuitCDF ("8.1", status); -if (recCountOut != zRecCount) QuitCDF ("8.2", status); -if (recIntervalOut != zRecInterval) QuitCDF ("8.3", status); -for (dimN = 0; dimN < N_DIMS2; dimN++) { - if (indicesOut[dimN] != zIndicesA[dimN]) QuitCDF ("8.4", status); - if (countsOut[dimN] != zCounts[dimN]) QuitCDF ("8.5", status); - if (intervalsOut[dimN] != zIntervals[dimN]) QuitCDF ("8.6", status); -} - -/****************************************************************************** -* Set/confirm sequential access position for a zVariable (and read/write a -* value). -******************************************************************************/ - -status = CDFlib (SELECT_, zVAR_SEQPOS_, zRecStart, zIndicesA, - GET_, zVAR_SEQDATA_, var2Value_out, - PUT_, zVAR_SEQDATA_, var2Value_out, - CONFIRM_, zVAR_SEQPOS_, &recNumOut, indicesOut, - NULL_); -if (status < CDF_OK) QuitCDF ("9.0", status); - -if (recNumOut != zRecStart) QuitCDF ("9.1", status); -if (indicesOut[0] != zIndicesA[0] + 2) QuitCDF ("9.2", status); - - -/****************************************************************************** -* Confirm existence of variables. -******************************************************************************/ - -status = CDFlib (CONFIRM_, zVAR_EXISTENCE_, var1Name, - zVAR_EXISTENCE_, var2Name, - NULL_); -if (status < CDF_OK) QuitCDF ("10.0", status); - -/****************************************************************************** -* Inquire variable numbers. -******************************************************************************/ - -status = CDFlib (GET_, zVAR_NUMBER_, var1Name, &varNum_out1, - zVAR_NUMBER_, var2Name, &varNum_out2, - NULL_); -if (status < CDF_OK) QuitCDF ("11.0", status); - -if (varNum_out1 != 0) QuitCDF ("11.2", status); -if (varNum_out2 != 1) QuitCDF ("11.3", status); - -/****************************************************************************** -* Rename variables. -******************************************************************************/ - -status = CDFlib (SELECT_, zVAR_NAME_, var1Name, - PUT_, zVAR_NAME_, new_var1Name, - NULL_); -if (status < CDF_OK) QuitCDF ("12.0", status); - -status = CDFlib (SELECT_, zVAR_NAME_, var2Name, - PUT_, zVAR_NAME_, new_var2Name, - NULL_); -if (status < CDF_OK) QuitCDF ("12.1", status); - -/****************************************************************************** -* Read/write multiple variable data - one record for each variable involved. -******************************************************************************/ - -status = CDFlib (SELECT_, zVARs_RECNUMBER_, 2L, - PUT_, zVARs_RECDATA_, nZvars1, zVarNs1, zVarsRecBuffer1, - SELECT_, zVARs_RECNUMBER_, 2L, - PUT_, zVARs_RECDATA_, nZvars2, zVarNs2, zVarsRecBuffer2, - NULL_); -if (status < CDF_OK) QuitCDF ("13.0", status); - -status = CDFlib (GET_, zVARs_RECDATA_, nZvars1, zVarNs1, zVarsRecBufferOut1, - GET_, zVARs_RECDATA_, nZvars2, zVarNs2, zVarsRecBufferOut2, - NULL_); -if (status < CDF_OK) QuitCDF ("13.1", status); - -if (memcmp(zVarsRecBufferOut1,zVarsRecBuffer1, - sizeof(zVarsRecBuffer1))) QuitCDF ("13.3", status); -if (memcmp(zVarsRecBufferOut2,zVarsRecBuffer2, - sizeof(zVarsRecBuffer2))) QuitCDF ("13.4", status); - -/****************************************************************************** -* Inquire variables. -******************************************************************************/ - -status = CDFlib (SELECT_, zVAR_, var1Num_out, - GET_, zVAR_NAME_, var1Name_out, - zVAR_DATATYPE_, &var1DataType_out, - zVAR_NUMELEMS_, &var1NumElements_out, - zVAR_BLOCKINGFACTOR_, &blockingfactorOut1, - zVAR_MAXallocREC_, &maxAllocOut1, - zVAR_MAXREC_, &maxRecOut1, - zVAR_nINDEXRECORDS_, &nIndexRecsOut1, - zVAR_nINDEXENTRIES_, &nIndexEntriesOut1, - CONFIRM_, zVAR_, &var1Num_out, - NULL_); -if (status < CDF_OK) QuitCDF ("14.0", status); - -if (strcmp(var1Name_out,new_var1Name) != 0) QuitCDF ("14.1", status); -if (var1DataType_out != var1DataType) QuitCDF ("14.2", status); -if (var1NumElements_out != var1NumElements) QuitCDF ("14.3", status); -if (var1Num_out != 0L) QuitCDF ("14.4", status); -if (blockingfactorOut1 != blockingfactor1) QuitCDF ("14.5", status); -if (maxAllocOut1 + 1 != allocRecs1) QuitCDF ("14.6", status); -if (maxRecOut1 != 2L) QuitCDF ("14.7", status); - -status = CDFlib (SELECT_, zVAR_, var2Num_out, - GET_, zVAR_NAME_, var2Name_out, - zVAR_DATATYPE_, &var2DataType_out, - zVAR_NUMELEMS_, &var2NumElements_out, - zVAR_BLOCKINGFACTOR_, &blockingfactorOut2, - zVAR_MAXallocREC_, &maxAllocOut2, - zVAR_MAXREC_, &maxRecOut2, - zVAR_nINDEXRECORDS_, &nIndexRecsOut2, - zVAR_nINDEXENTRIES_, &nIndexEntriesOut2, - CONFIRM_, zVAR_, &var2Num_out, - NULL_); -if (status < CDF_OK) QuitCDF ("14.8", status); - -if (strcmp(var2Name_out,new_var2Name) != 0) QuitCDF ("14.9", status); -if (var2DataType_out != var2DataType) QuitCDF ("14.10", status); -if (var2NumElements_out != var2NumElements) QuitCDF ("14.11", status); -if (var2Num_out != 1L) QuitCDF ("14.12", status); -if (blockingfactorOut2 != blockingfactor2) QuitCDF ("14.13", status); -if (maxAllocOut2 + 1 != allocRecs2) QuitCDF ("14.14", status); -if (maxRecOut2 != 2L) QuitCDF ("14.15", status); - -/****************************************************************************** -* Close CDF. -******************************************************************************/ - -status = CDFlib (CLOSE_, CDF_, - NULL_); -if (status < CDF_OK) QuitCDF ("15.0", status); - -/****************************************************************************** -* Successful completion. -******************************************************************************/ - -return EXIT_SUCCESS_; -} - - -/****************************************************************************** -* QuitCDF. -******************************************************************************/ - -void QuitCDF (where, status) -char *where; -CDFstatus status; -{ - char text[CDF_STATUSTEXT_LEN+1]; - printf ("Aborting at %s...\n", where); - if (status < CDF_OK) { - CDFlib (SELECT_, CDF_STATUS_, status, - GET_, STATUS_TEXT_, text, - NULL_); - printf ("%s\n", text); - } - CDFlib (CLOSE_, CDF_, - NULL_); - printf ("...test aborted.\n"); - exit (EXIT_FAILURE_); -} diff --git a/cdf36_3-dist/samples/cacsst2.cdf b/cdf36_3-dist/samples/cacsst2.cdf deleted file mode 100644 index e959b5e716d3f5c5fe468938a15d4477d2123479..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73511 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
  • V^-iA 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 O;(aQHryXn5p8x;OZI$)_ diff --git a/cdf36_3-dist/samples/cacsst2.skt b/cdf36_3-dist/samples/cacsst2.skt deleted file mode 100644 index b3eb37e..0000000 --- a/cdf36_3-dist/samples/cacsst2.skt +++ /dev/null @@ -1,405 +0,0 @@ -! Skeleton table for the "cacsst2" CDF. -! Generated: Wednesday, 3-Apr-1996 10:18:44 -! CDF created/modified by CDF V2.5.19 -! Skeleton table created by CDF V2.6.0 - -#header - - CDF NAME: cacsst2 - DATA ENCODING: NETWORK - MAJORITY: COLUMN - FORMAT: SINGLE - -! Variables G.Attributes V.Attributes Records Dims Sizes -! --------- ------------ ------------ ------- ---- ------ - 4/0 1 8 1/z 2 180 91 - - -#GLOBALattributes - -! Attribute Entry Data -! Name Number Type Value -! --------- ------ ---- ----- - - "TITLE" 1: CDF_CHAR { "Climate Analysis Center " - - "SST blended analysis " } . - - -#VARIABLEattributes - - "FIELDNAM" - "VALIDMIN" - "VALIDMAX" - "SCALEMIN" - "SCALEMAX" - "UNITS" - "FORMAT" - "FILLVAL" - - -#variables - -! Variable Data Number Record Dimension -! Name Type Elements Variance Variances -! -------- ---- -------- -------- --------- - - "LATITUDE" CDF_INT2 1 F F T - - ! Attribute Data - ! Name Type Value - ! -------- ---- ----- - - "FIELDNAM" CDF_CHAR { "Latitude " } - "VALIDMIN" CDF_INT2 { -90 } - "VALIDMAX" CDF_INT2 { 90 } - "SCALEMIN" CDF_INT2 { -90 } - "SCALEMAX" CDF_INT2 { 90 } - "UNITS" CDF_CHAR { "deg " } - "FORMAT" CDF_CHAR { "I5 " } . - - ! NRV values follow... - - [1,1] = -90 - [1,2] = -88 - [1,3] = -86 - [1,4] = -84 - [1,5] = -82 - [1,6] = -80 - [1,7] = -78 - [1,8] = -76 - [1,9] = -74 - [1,10] = -72 - [1,11] = -70 - [1,12] = -68 - [1,13] = -66 - [1,14] = -64 - [1,15] = -62 - [1,16] = -60 - [1,17] = -58 - [1,18] = -56 - [1,19] = -54 - [1,20] = -52 - [1,21] = -50 - [1,22] = -48 - [1,23] = -46 - [1,24] = -44 - [1,25] = -42 - [1,26] = -40 - [1,27] = -38 - [1,28] = -36 - [1,29] = -34 - [1,30] = -32 - [1,31] = -30 - [1,32] = -28 - [1,33] = -26 - [1,34] = -24 - [1,35] = -22 - [1,36] = -20 - [1,37] = -18 - [1,38] = -16 - [1,39] = -14 - [1,40] = -12 - [1,41] = -10 - [1,42] = -8 - [1,43] = -6 - [1,44] = -4 - [1,45] = -2 - [1,46] = 0 - [1,47] = 2 - [1,48] = 4 - [1,49] = 6 - [1,50] = 8 - [1,51] = 10 - [1,52] = 12 - [1,53] = 14 - [1,54] = 16 - [1,55] = 18 - [1,56] = 20 - [1,57] = 22 - [1,58] = 24 - [1,59] = 26 - [1,60] = 28 - [1,61] = 30 - [1,62] = 32 - [1,63] = 34 - [1,64] = 36 - [1,65] = 38 - [1,66] = 40 - [1,67] = 42 - [1,68] = 44 - [1,69] = 46 - [1,70] = 48 - [1,71] = 50 - [1,72] = 52 - [1,73] = 54 - [1,74] = 56 - [1,75] = 58 - [1,76] = 60 - [1,77] = 62 - [1,78] = 64 - [1,79] = 66 - [1,80] = 68 - [1,81] = 70 - [1,82] = 72 - [1,83] = 74 - [1,84] = 76 - [1,85] = 78 - [1,86] = 80 - [1,87] = 82 - [1,88] = 84 - [1,89] = 86 - [1,90] = 88 - [1,91] = 90 - - -! Variable Data Number Record Dimension -! Name Type Elements Variance Variances -! -------- ---- -------- -------- --------- - - "LONGITUD" CDF_INT2 1 F T F - - ! Attribute Data - ! Name Type Value - ! -------- ---- ----- - - "FIELDNAM" CDF_CHAR { "Longitude " } - "VALIDMIN" CDF_INT2 { -180 } - "VALIDMAX" CDF_INT2 { 180 } - "SCALEMIN" CDF_INT2 { -180 } - "SCALEMAX" CDF_INT2 { 180 } - "UNITS" CDF_CHAR { "deg " } - "FORMAT" CDF_CHAR { "I5 " } . - - ! NRV values follow... - - [1,1] = -178 - [2,1] = -176 - [3,1] = -174 - [4,1] = -172 - [5,1] = -170 - [6,1] = -168 - [7,1] = -166 - [8,1] = -164 - [9,1] = -162 - [10,1] = -160 - [11,1] = -158 - [12,1] = -156 - [13,1] = -154 - [14,1] = -152 - [15,1] = -150 - [16,1] = -148 - [17,1] = -146 - [18,1] = -144 - [19,1] = -142 - [20,1] = -140 - [21,1] = -138 - [22,1] = -136 - [23,1] = -134 - [24,1] = -132 - [25,1] = -130 - [26,1] = -128 - [27,1] = -126 - [28,1] = -124 - [29,1] = -122 - [30,1] = -120 - [31,1] = -118 - [32,1] = -116 - [33,1] = -114 - [34,1] = -112 - [35,1] = -110 - [36,1] = -108 - [37,1] = -106 - [38,1] = -104 - [39,1] = -102 - [40,1] = -100 - [41,1] = -98 - [42,1] = -96 - [43,1] = -94 - [44,1] = -92 - [45,1] = -90 - [46,1] = -88 - [47,1] = -86 - [48,1] = -84 - [49,1] = -82 - [50,1] = -80 - [51,1] = -78 - [52,1] = -76 - [53,1] = -74 - [54,1] = -72 - [55,1] = -70 - [56,1] = -68 - [57,1] = -66 - [58,1] = -64 - [59,1] = -62 - [60,1] = -60 - [61,1] = -58 - [62,1] = -56 - [63,1] = -54 - [64,1] = -52 - [65,1] = -50 - [66,1] = -48 - [67,1] = -46 - [68,1] = -44 - [69,1] = -42 - [70,1] = -40 - [71,1] = -38 - [72,1] = -36 - [73,1] = -34 - [74,1] = -32 - [75,1] = -30 - [76,1] = -28 - [77,1] = -26 - [78,1] = -24 - [79,1] = -22 - [80,1] = -20 - [81,1] = -18 - [82,1] = -16 - [83,1] = -14 - [84,1] = -12 - [85,1] = -10 - [86,1] = -8 - [87,1] = -6 - [88,1] = -4 - [89,1] = -2 - [90,1] = 0 - [91,1] = 2 - [92,1] = 4 - [93,1] = 6 - [94,1] = 8 - [95,1] = 10 - [96,1] = 12 - [97,1] = 14 - [98,1] = 16 - [99,1] = 18 - [100,1] = 20 - [101,1] = 22 - [102,1] = 24 - [103,1] = 26 - [104,1] = 28 - [105,1] = 30 - [106,1] = 32 - [107,1] = 34 - [108,1] = 36 - [109,1] = 38 - [110,1] = 40 - [111,1] = 42 - [112,1] = 44 - [113,1] = 46 - [114,1] = 48 - [115,1] = 50 - [116,1] = 52 - [117,1] = 54 - [118,1] = 56 - [119,1] = 58 - [120,1] = 60 - [121,1] = 62 - [122,1] = 64 - [123,1] = 66 - [124,1] = 68 - [125,1] = 70 - [126,1] = 72 - [127,1] = 74 - [128,1] = 76 - [129,1] = 78 - [130,1] = 80 - [131,1] = 82 - [132,1] = 84 - [133,1] = 86 - [134,1] = 88 - [135,1] = 90 - [136,1] = 92 - [137,1] = 94 - [138,1] = 96 - [139,1] = 98 - [140,1] = 100 - [141,1] = 102 - [142,1] = 104 - [143,1] = 106 - [144,1] = 108 - [145,1] = 110 - [146,1] = 112 - [147,1] = 114 - [148,1] = 116 - [149,1] = 118 - [150,1] = 120 - [151,1] = 122 - [152,1] = 124 - [153,1] = 126 - [154,1] = 128 - [155,1] = 130 - [156,1] = 132 - [157,1] = 134 - [158,1] = 136 - [159,1] = 138 - [160,1] = 140 - [161,1] = 142 - [162,1] = 144 - [163,1] = 146 - [164,1] = 148 - [165,1] = 150 - [166,1] = 152 - [167,1] = 154 - [168,1] = 156 - [169,1] = 158 - [170,1] = 160 - [171,1] = 162 - [172,1] = 164 - [173,1] = 166 - [174,1] = 168 - [175,1] = 170 - [176,1] = 172 - [177,1] = 174 - [178,1] = 176 - [179,1] = 178 - [180,1] = 180 - - -! Variable Data Number Record Dimension -! Name Type Elements Variance Variances -! -------- ---- -------- -------- --------- - - "SST " CDF_REAL4 1 T T T - - ! Attribute Data - ! Name Type Value - ! -------- ---- ----- - - "FIELDNAM" CDF_CHAR { "Monthly Mean SST " } - "VALIDMIN" CDF_REAL4 { -5.0 } - "VALIDMAX" CDF_REAL4 { 40.0 } - "SCALEMIN" CDF_REAL4 { 0.0 } - "SCALEMAX" CDF_REAL4 { 35.0 } - "UNITS" CDF_CHAR { "deg C " } - "FORMAT" CDF_CHAR { "F5.2 " } - "FILLVAL" CDF_REAL4 { -1.0e+09 } . - - ! RV values were not requested. - - -! Variable Data Number Record Dimension -! Name Type Elements Variance Variances -! -------- ---- -------- -------- --------- - - "EPOCH " CDF_EPOCH 1 T F F - - ! Attribute Data - ! Name Type Value - ! -------- ---- ----- - - "FIELDNAM" CDF_CHAR { "Time Line " } - "VALIDMIN" CDF_EPOCH { 01-Jan-1982 00:00:00.000 } - "VALIDMAX" CDF_EPOCH { 01-Dec-1992 00:00:00.000 } - "SCALEMIN" CDF_EPOCH { 01-Jan-1982 00:00:00.000 } - "SCALEMAX" CDF_EPOCH { 01-Dec-1992 00:00:00.000 } - "UNITS" CDF_CHAR { "ms " } - "FORMAT" CDF_CHAR { "E14.8 " } . - - ! RV values were not requested. - - -#zVariables - -! No zVariables. - - -#end diff --git a/cdf36_3-dist/samples/d103a2x.cdf b/cdf36_3-dist/samples/d103a2x.cdf deleted file mode 100644 index 627c17679f924799615836c5f72c2dd2139b89b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10502 zcmX|Hc{mi>`%fxKC}bVnZb>4NoiT1v5>eL5Fd^&M$8N?{LiSs-4=zHHne4_g_K`i= z*RhXv%oxjznK8e<|NPE#-sf}P^Ddvi-t(OEoOfXF)#?8JQyiyG-CR3$>ePilNIJ!# z!uMx=N;>}h|KQXq&Yc|Fe*sf3h-SvHG4PC3I0sCw!}~7hwZtzJui5XTJ8Af|;jix- zx)b`XR5mM|jW_ehI8DbzohBvG(NeD*uLWI8D}mn#@x3&x^w0ayj8oe0xE$YcNu57i z_t*K{^I=l2sIL(%N^GK~Rhg~boQF|hflBEu`JtW^B7?|gAPHJ8B-=X|FSQ%6jw+4= zAx@ZPo#Gh$%~}vm<{HJoP6Un8w8DI+QG}g4g1(3 zrQjss(d=TRA-^>J5wX92wqGR=6&`WeItvxCf3c2Y!9#a`%TIid;=zC$;O=6qG3uGZ{D13Y3dkxf*HM6|!0PUIeqrQV6 z3_N1oKABIO5Szl49N=OPc?oXt#lkjwqlRuP1m>c$wGKu{a*Qb>H6=QRNkM3!Zn)!G z3_oaM3Vi>>A;NRMj&ws%F z6_KZ_tHOpK&GP)=?k*xQz7V)I1);B-n~7s#;nQJQWZ`_Swu%Ol)Fq;QZFA>D;-EI# zh%h;CJF}eIQfoh7^~{H8*6h1C+k<^}aF{D`px&;zyMy2#@1UD<@@DX~F9LA`$+d@d#QF-PBVKYr@m>xBP>;&BV7u`i9Jx$pD zg?;^GXrSLW*iI^sjZV6fo!xpvv(bHC$KchOhz6@6H+t_Ar;EyJWP!7p zS^-N>F@$Ogx>{NJdt!9GPM#ZhZ!8Krp=~6=4@glzVif=4%*Nn=wY=V(_jD#PRJb`6qq-8)9S5*;xMwTS9p zhs&+q`UKIzrhvk?)BjD1Nn+6f+s5{#QiZl_+Ehm7QW7-V{ihmFA`l`P4fWUeA36!InZTgW)Z zJn7l=;)vl#HjYh+^L?w31Az955n@na=d)%zezwuNM8~rQ@?!7~SVO!6$vi${J)3oQ zqW!#DR<|fR7?72${&zC-%m2qdRJ{xZ_Wub@o)>w25dwsHM0khiPKGdt&1SIb`$jg3 zb~yOPbh~`KjgtKqkiNvUh*b*N-};Sznz!Et<76p&F^j5|M`i7re>{_TlAo9la(^V@ z64~AIDyAC*yx%;J?v7CVs`z#JO(xxIs@0b{nKz03(Z(5hjM)1b!zW2PNDbS4+#Kt0 zkjtLTFUkk(g>>)M)We-QdMq+XoL&y_B0Z}bn*Fa01& zKj?NfBhWqA@p)tUURVRQ3ntRr$8$i0=FsU8v%@5UQ6nR|W@aQ1qhKGw>Kz+QG31ld z3e%jA%4c(q}3*c;-~* z=%mcS8=e~9MNj6bWM*|T(BFl4z5cqlNBUdRu9nsT= zC+Jef&mBl5?@Zv1r4NydnV9iicCg9~!I%@7eP#e$YkVd;spkwr({F`br5ED8#=MC) zz<5(Ocs?_emaUg-k0G#6*x}G)b`$mOM$f8rw*9xd zZ!Fjd60ts!+`YTW>Mr{hyhQ1qm_Lc%@NOR4Eg^(3kCu)GaLdqNsm1{xf|An2+Zy--yL97 zP7rCJ!+dwM<1e-r$>r!0#(stict?%o^!)%~|J7`+7@`hpI)Y7NwQy4+-9=K%iGvj> zGA*XHF3jaE4Lyyi$-tW02i5To=&9E3FN-&(8*3e?cGY^_oh*PzOEN~yx}wGDO%Si) z2}sH(_pKXZKw>Cp(xBvv2>+$1C3m5-ol_-ia)4TVM z=#FUJ&)@}a3G3*b$!N-~-<>n+jm_bMUXNRZO6)oWvMJdx3!sSTyFS|dAhGGJji2YB zZ7u&ys2%wR>NmimdN~uGx0qOAV`@xxWA$R)e-$6()D`HSiEn(duPq*KzyxEwM7+59 z7kDb9566ZkudqcbxVy_m`6e&w`PMG?hYb7ua0GBB<7+#Qv~aCujv@*Yhmv_>d;pyX zeLSxOB8-2?qSAbYM9odO2mS4}?RnR}0z}af;RG+%vn2?*{A2pQ3X02+n`jb$&U4VYDIce>_+?Uf+H9x{ z#0Nf~C-)FwqlH`07&Nn^#Cz<55{q#bp1X`zRe;7DMzq6Yy~3+s>$WCunMkx*412o} z@rsurw8juXz4>h^$XT9_`YsBdMzI?{{&~iD!GOlAx2+v}L>8>&>T@d#0S`M~up@y) zJT2cTFP4A^C3#nZwfN#AZs#o<9J~~`cHXpkw*V7Oxk7-k;PdVZGWBSNI`w3e3!pOb zMCSqO`*WZu{Q`UZ3b4~jD00E+_YW~;ZfS9TW%ZFv-W=(E`&h*i-DS*A8j z3vZRrp!7V-M7bRGR^@04B#4T_Wv(?4KdP(2Exga_-@*(}B2kTF*X{vgA{`dmmB(4{0 z3W8Vt7XH(Oi5hx+mhP+B8oXNCVph?jvVy+u0=-ihanW{0dERyP*79H7|LtYbL=G}N zG>B@dB~usqPQ&KURlIZfjg8&?%s(J)T85xtqp6_A4kuwQw-bFTe^PQ_DCT9~k2D(Y zqDrib{9W%Vm>=$57$O5rdb?!oQ`a4sgML%iK+iG z>qM@xlL~`P;u~H57Re6{1z|*8J`XJ@kY)YsI+S~@BAMdA(u_||zxH~axlMoMP5oY; z`+I~!GmZBVK->lifUY7((+R!g{NsC!Z`$5Zr2<5g_5`|NYbWy={C$*U0b8SlY8Sfv zzIKy7ACKNwaUSr^hmZU8jO>3OsMbH*&d{TVLjum%TPEhLJZlrB+fH8#E^12kOK(|w zX>{;JhGyqObv5z^#WMsXmAXSs_0^D9^NJLS{V*GkMu3FGqC%2;r2OL2y>2fNv*YR6 ziDxAfdD*aT<-gdO?iu(rHhWWy z!@C-d-+lq!w-Z`4A0jZboS_kFJ)9rLt@~v{%{OmGtW+`n*<9kPn!rDN)jSC_bf-Y= zcHDnGb8ug$Z=Yn)->e#3!!1P@Tch93l&TXqf|U9--WdA7=#?z)0ZKb6sZpx{&>gzV{fbhEl7;H;gxXK?}9cY>d$8T-k@A1f}sf4g4M=?Dza^y2I(rfqq$x84aO=_ky#+> zjz{fwYJ|_AAbvJaij-SlX6dwij5hPFnO@!+7{`i%-O+Qzv$53H3xHGnSl{GLbyD9-(}TX4P?FyzQ1phypFsI*+5HnnTsgQ}0JEN0XyqQhq%ofZ2G+7}^B1Tip-swva2iBR{az;sQ%(?!K zJX+|4A=#qZYUM7)s5IR!*d0AW>)7FPt;k&S_T@391k(P(TW_z;e$%qv|10CEVw6sQ zdiY5^&2;G>J&i1!hn8}WQ@OL>RYq6I4Xs;Cas9iiTauq=)~U)Hbxu~B8i#`4dD|c3 z+({87af2@mwhh2)*a%OI=$n!LG;~q1XEVh^d_qnA8N&H+^!c5(J`Z(~N87HNK~3!{ zQEtAgx?^VR?mt|h)t@H+p$!L$zBCQFmTAFd>xR9jZO1~bALHl+e}^aIE&J2Gz+W-k z)^P*wG9=xu`Tr)eZ)+tDZ}GZ5$ce(gi~O~efWb!=kvZ!NpVXHNk<9H-j2p|^1j|Bh zP?MBq+l^1iK=0E~yB?$0*ii%dGPXI~7d7Z(j399zxsN^@w3Pn#vdnGboorUQ3Cz0J zjMp^I5=l5O9XGbK;3`_YE;z9|^w5A5i@7W@aU1y`mNVpija5MkO7AXmvT34z0Oylb zbD(Kt%CU`aXyD6I%YS7++6D4&9n^Sr2m;bpEVN3F+y6dr(%xOyEIp$_bGlQJ>u63N zWI0ULekAsNo;Y4B=@Ri?VecUl=O%`bu+e()QLg%m%#K)`Vv>dP%be%AL_h0(#s1X{ zv_EiBV;S0M0!n`V0mKzvCY=2?^PWU~=}Hwopx4It)8MtoQXCQ~8vdY%u+@qP8M^&9 zV)mXIyb$%J$?6Ms`FilZ@Ms2V#NS?Ah-dy^Oq@_zVQ1P=*}tf82Y8J){pPrefyo>G z{ZIY;$0(I!2?+NPnRzSYUEK%XMJ0a=-@gIh>Q|b4<2I%4#45gz|7q9y4DX&LOV+w- z%OHvKB@_&dcP1BzY^VTh6{*qhl<-=aJPHiPg7WtTrJm+xrv<6uMUAZZanN>v{U`zn zHoQzc|3pOt>Z0HRYs^aC_j^Emr4k^JRXUS|o#^&KH}4GjV3RL_Z{P~$slmQE-=975 ze<5Bcyo1=K-JA&put3ACyDb~jPyKgCXiAhwG?oH^cUM5$^@2bH$pY!p9Rv?WvjD6| zVAs@tlS*}U$Fn)@mPtwzCR=x71Ve9;;xYXal_2@>Xw^*iSk3dWi+>)vVRto5OxCu} zFXo%?eP26_ zhn4oIxmcG+@sBrn7$U4lPx+>d(7lXz(w|C8^K1fAB4j&Oi{Totjj*`PW& zPT-hz=iG$oGE~v~M16)xv%mNeLwh zHeH8aTW}aQm#T_|m@L^a<$yAx2U=&_Y-WGhv_ISQDNEp)IOhvV-9S6GR?)1sY-8Lp z<*z)ex;Nnlg%j8Gx^ClRX4$Ee{trUV-8KN3k2lw+wX<*PeI=cn=v7*&`@FSKF6xAi zMXtaZ(U**oSF* zC;i1+WAu|-UJ1AAaB`k)?1ORIJ!US;I&wyL=$>%#Zl8U`-)-Ds+9XWzypcb*vks&H zYQUOzL5nq(si&x!lT?P6CQ+i6L=Vek`Si~P9~*BY-9a6!AGvk^qQpQKL1ov+JGqCx)=T4)W-_Vn9 zkdDD#r!s%w^l8QQ+ULe(j@$~h`uBAP!E)>nKpVZ)$fo+EWC}F%wJu+G`A=ryo-*~W zZ}FzeSX4p2s&v*XV@f{jp@on|54Z^*967GDPdD^^;n_6r@OjeXxD6phzXhU#pVVj_ zsdZe*v+1|-PnfmA)kb3<40J)0IDnflP=ob7&HkFyrSsb>xbvjeJh{UP!Mq3ITEdlq z@3M@26}RIKl}Xy?^sFq5a`mZ4v4b{%>67=!QJV|7vw7+79%!jo$Y88C1%s~*ox;yb zI}(1{0QH8|c1!`!ADf&japSvBr34Xllr})ie+^{noEu)>)8WOvBDNL zi<(LrlM~T|Ud@{m-iX?0!PXB8zh*}0o0Yn0@btBH##&@&U75PEWAm*J8L;-$N!qIS zf?Rhh#1%jYj9>ILEg1#_%be)vAzLMfsaoj9)9q4!_@Cp+?k= zd69Wc9lQvne&ofCGccAz&fNv4dXefX+~LlOu4Bxh%?KoVvWEA>WWw(g0R{F(YMkp| z=v&}rUW>3MFGr+?paoFwaMvu`iBegn<5ApNGFYMv(*|jS>_@VoKC)Za{c}=R$`_2< z-XkG3tnppei8|jI6*RqJN}PLD_b^g#TJf05Q;45@xbqEj7@D)rF5n&h)frAx8*$K< zUJ6y%me;zMxFZ1JA}Bvxr+REkdSQGL7km9b8UN0Z&*c1p%g3lqtT2mk!hm?;?wCTS zpHqi)HPXPh!zsW(rc4-^(2*F|b#SQJg1mn8ab-!>wL8?Og1?_CMR~~#o_#^MMEwFS zXkMPIB=OtIu_r|(IVBpT&JEgnsafCMEu2gV^==7<>2i%zW-;zUbnZ@1h^a^rN9NYD&?oqM5xG;z8db z?y&xhUV3*F`EO!ACW>6YHrw`YGh+2R+0vv4))$A_gJ&6X%Dz(@l2|Ac^I;&m@Ik37 zEpeY^&n>!ZP<>_>G`KmA``9C5Y6@ivU@XqZqN51aAD6+ zeP+4&Zz47MVZdrLJ#sp&C2*1F@U7P119lIGJo+`FH2%ocfW^PDF1gxB-GMoBc&>C5jwIRiHtUc*LYP@dlGOR?K?g=Lq z(L!quf=l%U=G)E6jl64mtHp?yr88H;x%wBc(-rECu}=`!x_=vzbbHE6(*lvQ(|OCu z!@GZXrL8INF;l%K_pF`dAea#_bU!kXjhK_p>fL)jcx8&2xm8-3UPy*(t9O!KRb+V( zqkr&r7X~iijVLj+Y2eY**IIJbQoC*1FI`yhPtagnG$KLk?0st*5^^UiC za%8cIxB61zNgWgJrgKzqR<}7kHFDzWuBx?qxM$LV3*3>t{Bm`jU!Lkm(`QP;fa}Z< z6q@&Sv$gUVI;BnNA*z57m~je7tA7@X!%7p!OAFtZG@;6^)O|Rk>dl ztN7byZV#C0gT)vey(Na2#rl{!4w|p=mIdYX4@@IUjM40MM!!)u5;wmrJk(PKGCuhI zxa=9wT1fA6Q|S%j6;ENYl1H=agjne($FHXQu#rut5Nasxhn6Xr_`wuZ?ch-e-$ic? zNcMt(UyWjeTXWafwXl?sXCeJ{=JkmgPnSBH-xoHmgibrr4%HYfLdO7TwI1l{@|{GE zDaG2YO)xaQyv1nkyfFo~a0XfICw%bh?r4WbyDiEvZ|s-oDMVLIsgJOt@!Ijatz3gG z)4$y)b>lki5j@|?*zc=X>$6nf^3FS@V?L^oI$P1{uPf9w^fC`a`U*K=Q!Ya14Coj5 z49?tlO$&1%42>0TD|Wlu;}p8x=~LPvxL`?LiyT*d%4Ns*&}Mpa07mez7<0616Pqno zJ`an4-Ug-eqy%21xeW3K$*7NFImgS|of<155T75wnme5as5;-f9G@iOjaGjAXv9a8 zqc`D+6wk!)f&n$fvd)Nx!H2|TO(pS5-U0(#P=ieQQD6#9zZ*4fWk15?3RwvEeeLvd z<@dx(sQ|BH%9-p#uP69cQu@wmx3umZY=X>9=&(41(KXz~7A?yOJ zLtw7)&Po1g3VXYg^-owipaIu#c=QrYz zoRQT-6`LwDinvS^@vCq3T+k;qy0ebqLW88F8SXP7r47$C9f&KB{}rf2d+?)x9^(e< zuv9srtI$5l?*VR3Cn5m0xjsb6G02jQmFrt8O7}b(ol^_WftC6zAH|R%1@Uf?ngyRw zeB#5tMJHILbJa&4#F;LxHJQx9((WR9c?pdzn>BD7k#zsy4s6C^ zX~U##LI`rx#!Cz%)M0s6i57JA^0f>26NEMYF%(ogipN3HL~rbx7*a+-#Bzggw0??J>Vc`0`?7uIfo{Jl)_$`ZiUn!R7HTBtV7XmH4Ex_(EbK z?$T`e2gPOZgCIUoioV5n9=;@rp|IJKtgMqqgS~3n&uvbcX)ecl-Q)@}mrtQ*2Ud;Y zVa#)))5f!E-}yV%+73?K(BX6SGX6#Y9{AN3V|~+ij8yDvIBIX~@g_k4fR`S~TixbQ_f10SXxdX*aYmUKQ~z?>FOBUwBdd|c#>p6D`E|un;JKGPc}7SqUiVFE zjskk|fpq7rb=90w=n>7ttUr_@K_T;i%&Ep@jG3B#a_rLmiM300TMgpNy=NdarLOZ# z&KrwqK>SJ*`MRcXlJVYE&r;$-hB+@|OD`nS3tfEN7fe zPhL$6(VR%w>=(}X$vf433wWz4eyPSRP3*7tQ?q3+6I+XrSCjoGucKL@&Z zKk&vDU6gKc>10WVC1k{BSg3{++_R2?Uf0;vIya_WI&fZ{;fuBkf>-7a89?~_P=+{`PUfv9sM2Yf3}7Dejc z5d>dU&>xTp<{<_!@zTE0^lvw8ByT`lQMT9TZO|~=NE?<{8^E}LhXs#w@Pbg?M(ePn zK$1no^ne;qUBOC442JQSeLQ<&Bce~QlNjzeD4(PS7fc>zLpca{*oCms)X9s8Vn1=_ zdoL>3+@Xn+z0eT=vN#Ze%K=JYLE7mn+D3s_A_5=4|3+Be{*Tx+iKaG6hPapX{m1-9 ze5!Pq+wA7ge_1+9Ud?M4rb8C5Z)dxo#D_}_a_FxVEpWvixbJ|_Gn&wS7nd`=bE!m2~6NvDt{Qec%M}nYhGMiqe;n@h7Q5B3$`6TE2s~8Rx|DiM(B1j3I51#{8zj4 z0wXNmEV<}`VS+z%S4dGph<|HxqX`lDjduKkQSNgh{Wq#}*DpWsLXS_I4oziW{P}CN zb}h$z##U6!PrDz;C*-2g=L2U=6zia@wkAg_n4<+_hOpeGfv$$Z=~X@1q4SGDJ!%OB zo~rz+>pFQI6DWiI#FS>jFR!JCq|ouM6rV2H{M1Y(^Snp!)@eoGk_Ks#YQ(7PEud+u zS!L2oHrs6M*n%i$7l~;Z>71>bwT*P#kVquDv=GXiOOADKLh_ix2?K1pIABd8_G(-D zu@!B(fD8b>AD>_+qGt=Xe6HgI%Ae@a%mxT8SJ}Z00tiFC_gIsyLXf<++kBwXfC$0c zxiH)u*}-LdtPP0Jxs-F-)k;9gL-E1@zoM!}bn&}FvU{W>$B%QQr3%_pf18C5j8{8e zY$OPqH?lR~L$4i3Yff4$KW2g><$}A0KzWJ9u|e^`D^5K|Bh6$EEo-=yTo9Kmt(S?E zyu{h+RkTWPvz5cFBmJ)*BTN6zn{K#chslLh;rJxdv#VNj>}s_YBgg0Jea_gfQI~>o zX>H^&V8>;r$MCT@#E^Igx=B`+f5N>VugpxAg6F)djg?-3zr9%E*JmjQxx^~v>uxW@Tx*i!hN(Q2`w zLh9*$##=@utHrQlmpuB{_C;}mt?pW|tDedcjbiuOjPq;=Q3;7u);2J4eHtw^wm%Ln^#`x9Q4p9PGJ-@3|-Hf)NT6A#^(3 z`&Ve)%b+mDP^Fmwd1sB9b(g^u80oKzH`A(jD(0oq%Rf74hY3BOGLdjHA=zUyE9N(W z-KNCKUF)WVPc297qNFHLLZ4foeZ@x5afJ=q0bC0?th{YFRhN@QJv5)%LP!lYl031t zXxL}x=cZ7l?;@hMihIDy!ZNZ^_K4{*4c^?^p`8g?&ACB?C^)u>9#NM zw3#sMm6jKk6B8ek83C@Tb7ATTFy0yLZ8sHvv~IsW64W;U9x>fW(D8$Jua2iF7vop0 z({gBYIeud4I@kmX@+htO6{GoAOnKT&#n2y?<-7F>yF@>%ZSPLffnS1#Vzyjx*1&G{ zmY6l^%T`kg+WAj@jX$5|V(Ai}>o#}Z-tnV_u^KQ_DwKXDHHo~fy*%rsI=_}?e%T~I zM38sTTEF^W%g`}dW^iPi1#g~nHJtTvJ+NPK?%2JNODFPfvcgAB4Cdlli@Cl&h(X5I zaL66NdH$%Fj%$m<1nuV^H) z?qW+cTR4u~yx2pwq~XY{#SPy(fD1$KI~E^lis$l5Uy$aL=9cD_<{64gj`>FBTx^MP zS`5kHQ&|*rP)D7Y?Vv8EELtpD(gJ90zS>Qf2H$&YN<`d5@xUBFO`;&d2+by;!I+_F zX>L972nA*cEtZ_Jct1p|NkB0=itIrH>jtH_i?oY$toq7;dE*yr$QBNAV4l9k1M=E#eWknPId<@&P$}v9A4bhzc`^mP2k_ENAoA dvA8$*RQ@zMo;oG^M|l3o+5ahj#{V|Y{U3O{Lx%tW diff --git a/cdf36_3-dist/samples/example.dat b/cdf36_3-dist/samples/example.dat deleted file mode 100644 index aac0c0b..0000000 --- a/cdf36_3-dist/samples/example.dat +++ /dev/null @@ -1,96 +0,0 @@ -0000 -165. +40. 20.0 -0000 -165. +30. 21.7 -0000 -150. +40. 19.2 -0000 -150. +30. 20.7 -0100 -165. +40. 18.2 -0100 -165. +30. 19.3 -0100 -150. +40. 22.0 -0100 -150. +30. 19.2 -0200 -165. +40. 19.9 -0200 -165. +30. 19.3 -0200 -150. +40. 19.6 -0200 -150. +30. 19.0 -0300 -165. +40. 19.9 -0300 -165. +30. 19.3 -0300 -150. +40. 12.6 -0300 -150. +30. 19.0 -0400 -165. +40. 19.7 -0400 -165. +30. 13.3 -0400 -150. +40. 19.6 -0400 -150. +30. 19.0 -0500 -165. +40. 17.9 -0500 -165. +30. 19.3 -0500 -150. +40. 19.6 -0500 -150. +30. 19.6 -0600 -165. +40. 19.9 -0600 -165. +30. 20.3 -0600 -150. +40. 19.6 -0600 -150. +30. 12.0 -0700 -165. +40. 15.9 -0700 -165. +30. 19.3 -0700 -150. +40. 19.6 -0700 -150. +30. 19.0 -0800 -165. +40. 19.9 -0800 -165. +30. 19.3 -0800 -150. +40. 13.6 -0800 -150. +30. 19.0 -0900 -165. +40. 19.9 -0900 -165. +30. 19.3 -0900 -150. +40. 19.8 -0900 -150. +30. 29.0 -1000 -165. +40. 19.9 -1000 -165. +30. 19.3 -1000 -150. +40. 13.6 -1000 -150. +30. 19.0 -1100 -165. +40. 19.9 -1100 -165. +30. 19.3 -1100 -150. +40. 19.6 -1100 -150. +30. 19.0 -1200 -165. +40. 16.9 -1200 -165. +30. 19.9 -1200 -150. +40. 19.6 -1200 -150. +30. 19.0 -1300 -165. +40. 19.9 -1300 -165. +30. 12.3 -1300 -150. +40. 19.6 -1300 -150. +30. 19.0 -1400 -165. +40. 19.9 -1400 -165. +30. 11.3 -1400 -150. +40. 19.6 -1400 -150. +30. 19.0 -1500 -165. +40. 19.9 -1500 -165. +30. 18.3 -1500 -150. +40. 19.6 -1500 -150. +30. 19.0 -1600 -165. +40. 16.9 -1600 -165. +30. 19.3 -1600 -150. +40. 19.6 -1600 -150. +30. 19.0 -1700 -165. +40. 18.9 -1700 -165. +30. 19.3 -1700 -150. +40. 19.6 -1700 -150. +30. 19.0 -1800 -165. +40. 17.9 -1800 -165. +30. 19.3 -1800 -150. +40. 19.6 -1800 -150. +30. 17.0 -1900 -165. +40. 17.9 -1900 -165. +30. 17.3 -1900 -150. +40. 19.6 -1900 -150. +30. 19.0 -2000 -165. +40. 12.9 -2000 -165. +30. 19.3 -2000 -150. +40. 19.6 -2000 -150. +30. 10.0 -2100 -165. +40. 19.9 -2100 -165. +30. 19.3 -2100 -150. +40. 19.5 -2100 -150. +30. 19.0 -2200 -165. +40. 19.9 -2200 -165. +30. 19.3 -2200 -150. +40. 19.6 -2200 -150. +30. 19.5 -2300 -165. +40. 21.0 -2300 -165. +30. 19.5 -2300 -150. +40. 18.4 -2300 -150. +30. 22.0 diff --git a/cdf36_3-dist/samples/example1.c b/cdf36_3-dist/samples/example1.c deleted file mode 100644 index b701a42..0000000 --- a/cdf36_3-dist/samples/example1.c +++ /dev/null @@ -1,231 +0,0 @@ -/****************************************************************************** -* -* NSSDC/CDF Create an example CDF using the New Standard Interface -* that was introduced in CDF 3.1. -* -* History: -* -* V1.0 10-Jan-2006, D. Han Original version -* -******************************************************************************/ - -/****************************************************************************** -* -* Note(s): -* -* This program would have to be modified to run on a DEC Alpha because the -* C language `long' data type is 8 bytes rather than 4 (the CDF data type of -* CDF_INT4 is always 4 bytes). -* -******************************************************************************/ - -/****************************************************************************** -* Necessary include files. -******************************************************************************/ - -#include -#include -#include -#include - -#include "cdf.h" - -/****************************************************************************** -* Function prototypes. -******************************************************************************/ - -void StatusHandler (); - -/****************************************************************************** -* MAIN. -******************************************************************************/ -int main () { - -CDFid id; /* CDF identifier. */ -CDFstatus status; /* CDF completion status. */ - -FILE *fp; /* File pointer - used to read input data file. */ - -char *title[] = {"CDF title", "Author: CDF"}; -short lat[181]; -int time, i, *image; -long TimeVarNum, LatVarNum, ImageVarNum, attrNum, recNum, titleAttrNum, - dimIndices[2], dimCounts[2], dimInterval[2], dimSizes[2], dimVarys[2]; -long cType, /* Compression type */ - cParms[CDF_MAX_PARMS]; /* Compression parameters */ - -assert(sizeof(short) == 2); /* Test if short matches with CDF_INT2 */ -assert(sizeof(int) == 4); /* Test if int matches with CDF_INT4 */ - -/****************************************************************************** -* Create the CDF. -******************************************************************************/ -status = CDFcreateCDF ("example1", &id); -if (status != CDF_OK) StatusHandler (status); - -/****************************************************************************** -* Create zVariables. -******************************************************************************/ -status = CDFcreatezVar (id, - "Time", /* Variable name - case sensitive */ - CDF_INT4, /* Data type */ - 1L, /* Number of elements */ - 0L, /* Dimentionality */ - dimSizes, /* Dummy dimension sizes since dim = 0 */ - VARY, /* Record variance */ - VARY, /* Dimension variance */ - &TimeVarNum); -if (status != CDF_OK) StatusHandler (status); - -dimSizes[0] = 181; -dimVarys[0] = VARY; -dimVarys[1] = VARY; -status = CDFcreatezVar (id, "Latitude", CDF_INT2, 1L, 1L, dimSizes, - VARY, dimVarys, &LatVarNum); -if (status != CDF_OK) StatusHandler (status); - -dimSizes[0] = 10; -dimSizes[1] = 20; -dimVarys[0] = VARY; -dimVarys[1] = VARY; -status = CDFcreatezVar (id, "Image", CDF_INT4, 1L, 2L, dimSizes, - VARY, dimVarys, &ImageVarNum); -if (status != CDF_OK) StatusHandler (status); - -/* Define compression for the 'Image' variable. */ -cType = GZIP_COMPRESSION; -cParms[0] = 5; /* GZIP compression level */ -status = CDFsetzVarCompression (id, ImageVarNum, cType, cParms); -if (status != CDF_OK) StatusHandler (status); - -/****************************************************************************** -* Create global and variable attributes. -******************************************************************************/ -status = CDFcreateAttr (id, "TITLE", GLOBAL_SCOPE, &titleAttrNum); -if (status != CDF_OK) StatusHandler (status); - -status = CDFcreateAttr (id, "FIELDNAM", VARIABLE_SCOPE, &attrNum); -if (status != CDF_OK) StatusHandler (status); - -status = CDFcreateAttr (id, "UNITS", VARIABLE_SCOPE, &attrNum); -if (status != CDF_OK) StatusHandler (status); - -/****************************************************************************** -* Write TITLE gAttribute gEntry. -******************************************************************************/ -status = CDFputAttrgEntry (id, titleAttrNum, - 0L, /* Attribute entry number */ - CDF_CHAR, strlen(title[0]), title[0]); -if (status != CDF_OK) StatusHandler (status); - -status = CDFputAttrgEntry (id, titleAttrNum, - 1L, /* Attribute entry number */ - CDF_CHAR, strlen(title[1]), title[1]); -if (status != CDF_OK) StatusHandler (status); - -/****************************************************************************** -* Write vAttribute zEntries for 'Time' zVariable. -******************************************************************************/ -status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"FIELDNAM"), - CDFvarNum(id,"Time"), CDF_CHAR, 19L, - "Time of observation"); -if (status != CDF_OK) StatusHandler (status); - -status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"UNITS"), - CDFvarNum(id,"Time"), CDF_CHAR, 11L, - "Hour/Minute"); - -/****************************************************************************** -* Write data for 'Time' zVariable. -******************************************************************************/ -recNum = 0L; -time = 23; -status = CDFputzVarRecordData (id, TimeVarNum, recNum, &time); -if (status != CDF_OK) StatusHandler (status); -recNum = 1L; -time = 24; -status = CDFputzVarRecordData (id, TimeVarNum, recNum, &time); -if (status != CDF_OK) StatusHandler (status); - -/****************************************************************************** -* Write data for 'Latitude' zVariable. -******************************************************************************/ -dimIndices[0] = 0; -dimCounts[0] = 181; -dimInterval[0] = 1; -for (i=-90; i <= 90; i++) - lat[i+90] = i; - -status = CDFhyperPutzVarData (id, LatVarNum, - 0L, /* record start */ - 1L, /* # of records to write */ - 1L, /* record interval */ - dimIndices, /* dimension dimIndices */ - dimCounts, /* dimension counts */ - dimInterval, /* dimension interval */ - lat); - -if (status != CDF_OK) StatusHandler (status); - -/****************************************************************************** -* Write data for 'Image' zVariable. -******************************************************************************/ -dimIndices[0] = 0; -dimIndices[1] = 0; -dimCounts[0] = 10; -dimCounts[1] = 20; -dimInterval[0] = 1; -dimInterval[1] = 1; - -image = (int *) malloc (sizeof(int) * 600); -for (i=0; i < 600; i++) /* Load 3 records of data */ - *(image+i) = i; - -status = CDFhyperPutzVarData (id, ImageVarNum, - 0L, /* record start */ - 3L, /* # of records to write */ - 1L, /* record interval */ - dimIndices, /* dimension dimIndices */ - dimCounts, /* dimension counts */ - dimInterval, /* dimension interval */ - image); - -if (status != CDF_OK) StatusHandler (status); - -/****************************************************************************** -* Close CDF. -******************************************************************************/ -status = CDFcloseCDF (id); -if (status != CDF_OK) StatusHandler (status); - -return 0; -} - -/****************************************************************************** -* Status handler. -******************************************************************************/ -void StatusHandler (status) -CDFstatus status; -{ -char message[CDF_ERRTEXT_LEN+1]; - -if (status < CDF_WARN) { - printf ("An error has occurred, halting...\n"); - CDFgetStatusText (status, message); - printf ("%s\n", message); - exit (1); -} -else - if (status < CDF_OK) { - printf ("Warning, function may not have completed as expected...\n"); - CDFgetStatusText (status, message); - printf ("%s\n", message); - } - else - if (status > CDF_OK) { - printf ("Function completed successfully, but be advised that...\n"); - CDFgetStatusText (status, message); - printf ("%s\n", message); - } -return; -} diff --git a/cdf36_3-dist/samples/example1.cdf b/cdf36_3-dist/samples/example1.cdf deleted file mode 100644 index b1c4c526c934830f9be3d1651e275996921da834..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6012 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 Kzd?Q|#{UB4wDs5k diff --git a/cdf36_3-dist/samples/example2.f b/cdf36_3-dist/samples/example2.f deleted file mode 100644 index c5d513c..0000000 --- a/cdf36_3-dist/samples/example2.f +++ /dev/null @@ -1,147 +0,0 @@ -C---------------------------------------------------------------------- -C -C NSSDC/CDF Create an example CDF (using skeleton -C table). -C -C Version 1.0, 13-Nov-91, Hughes STX -C -C Modification history: -C -C V1.0 13-Nov-91, J Love Original version -C 1.1 12-Jan-06, M Liu Used the new Standard Interface -C routines -C -C--------------------------------------------------------------------- - - INCLUDE '../include/cdf.inc' - - INTEGER*4 id ! CDF identifier. - INTEGER*4 status ! CDF completion status. - - INTEGER*4 lun ! Logical unit number for input data - ! file. - - INTEGER*4 indices(2) ! Dimension indices. - INTEGER*4 rec_num ! Record number. - - INTEGER*4 time_var_num ! 'Time' zVariable number. - INTEGER*4 tmp_var_num ! 'Temperature' zVariable number. - - INTEGER*4 time ! 'Time' zVariable value. - REAL*4 lat ! 'Latitude' zVariable value. - REAL*4 lon ! 'Longitude' zVariable value. - REAL*4 tmp ! 'Temperature' zVariable value. - - INTEGER*4 x1, x2 ! Indices - - DATA lun/1/ - -C---------------------------------------------------------------------- -C Open the CDF. -C---------------------------------------------------------------------- - - CALL CDF_open_cdf ('example2', id, status) - IF (status .NE. CDF_OK) CALL StatusHandler (status) - -C---------------------------------------------------------------------- -C Determine zVariable numbers. -C---------------------------------------------------------------------- - - time_var_num = CDF_get_var_num (id, 'Time') - IF (time_var_num .LT. CDF_OK) CALL StatusHandler (status) - - tmp_var_num = CDF_get_var_num (id, 'Temperature') - IF (tmp_var_num .LT. CDF_OK) CALL StatusHandler (status) - -C---------------------------------------------------------------------- -C Read input values for zVariables and write them to the CDF. Not -C every value must be written to the CDF - many of the values are -C redundant. The 'Time' value only has to be written once per CDF -C record (every 4 input records). The 'Longitude' and 'Latitude' -C values are not written at all because they had been specified in the -C skeleton table. Each 'Temperature' value read is written to the CDF. -C---------------------------------------------------------------------- - - OPEN (UNIT=lun, FILE='example.dat', STATUS='OLD', ERR=99) - - DO rec_num = 1, 24 - DO x1 = 1, 2 - DO x2 = 1, 2 - indices(1) = x1 - indices(2) = x2 - - READ (lun, *, ERR=99) time, lon, lat, tmp - IF (indices(1) .EQ. 1 .AND. indices(2) .EQ. 1) THEN - CALL CDF_put_zvar_data (id, time_var_num, rec_num, - . indices, time, status) - IF (status .NE. CDF_OK) CALL StatusHandler (status) - END IF - CALL CDF_put_zvar_data (id, tmp_var_num, rec_num, - . indices, tmp, status) - IF (status .NE. CDF_OK) CALL StatusHandler (status) - END DO - END DO - END DO - - CLOSE (lun, ERR=99) - -C---------------------------------------------------------------------- -C Close CDF. -C---------------------------------------------------------------------- - - CALL CDF_close_cdf (id, status) - IF (status .NE. CDF_OK) CALL StatusHandler (status) - - STOP - -C---------------------------------------------------------------------- -C Input file error handler. -C---------------------------------------------------------------------- - - 99 WRITE (6,101) - 101 FORMAT (' ','Error reading input file') - STOP - - END - - - -C---------------------------------------------------------------------------- -C Status handler. -C---------------------------------------------------------------------------- - - SUBROUTINE StatusHandler (status) - INTEGER*4 status - - INCLUDE '../include/cdf.inc' - - CHARACTER message*(CDF_ERRTEXT_LEN) - INTEGER*4 statuso - - IF (status .LT. CDF_WARN) THEN - WRITE (6,10) -10 FORMAT (' ','Error (halting)...') - CALL CDF_get_status_text (status, message, statuso) - IF (statuso .EQ. CDF_OK) WRITE (6,11) message -11 FORMAT (' ',A) - STOP - ELSE - IF (status .LT. CDF_OK) THEN - WRITE (6,12) -12 FORMAT (' ','Warning...') - CALL CDF_get_status_text (status, message, statuso) - IF (statuso .EQ. CDF_OK) WRITE (6,13) message -13 FORMAT (' ',A) - ELSE - IF (status .GT. CDF_OK) THEN - WRITE (6,14) -14 FORMAT (' ','Be advised that...') - CALL CDF_get_status_text (status, message, statuso) - IF (statuso .EQ. CDF_OK) WRITE (6,15) message -15 FORMAT (' ',A) - END IF - END IF - END IF - - RETURN - END diff --git a/cdf36_3-dist/samples/geocpi0.cdf b/cdf36_3-dist/samples/geocpi0.cdf deleted file mode 100644 index 955db81ea10a174534344eaf5593ea60b89985bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30453 zcmdU23wRSn*A7rA6a+*Bl#5FNY3U`sa0i=YciU2EX=w|Ti-gby8flx7riCJ65xJ`< z3aIF(e5fd*pnwA2fJNm85s{k+A|QB01r_mv@}GCJlTJ#ugy_ffcpj%SyEE@OXU?2+ zW_AmR7nP;|twFeDB_IF$r;TJ%mA)9E&kECq)X&DYfO>g{;ELGDm)y z#=(~FC~~+f!#ty$1qC)&f#4aKQlxT{>?LlyD=gJzx0j5y7rCQ_44bR6$W~GyB*gXX z87~aUv4lmWVNi+PEyTnKq)yI|tgOuJTyuI_PHs+e_Rv@;5DOu(shL9~!`QrnsbvDe zPDF#hC%a8G7%I+rt_|&ACTgR>;|Yr}eq14xwS`gg--VvcF2K)-JI^9?Eh# zZ@1?I7Br0_d| z=2Nc)&1o}TV;-zfvzpj^WJg)PqqN9TVz2JI!d5PgXY+w9HlI#BA12So_mVPfXG@}UWv$A`33bLbj;v6iTP$jjGR?#j1YOKinKPozIFX7hk7Hjmc4 zKqfCWIWyOimY$SqcNVLYAoX)?jv^YX=^k8-wt2<)Y>aHveT62TJO#GSd zki~RwMr|)K-3P`c4YXGZSvD70i^7!#XgXh$MLPdV*U&XYtEs9c#zVH3<+~iEZYR*e zQ69mV&XC1)j^Nobc~Vwd5~aLSm%Y$lQs$_j{8eNtE4B$~B@_hZ#gv@X_#iBs3*~}q zw$U}_0y(wYzryY+qxhn6!B9Mb*j!Mvx%kLrbHQLu$@)(l4D}s!je+&GnyPAIpxm_F z^yKQ>!L<4kh$#tKOvy$(GbWE5+fDu~km0FYQ@62^wk5;^)W!aEJ(cEEyu{$S$$7cn zo53}-cnlpwaL8in))tRKmdjpbD=*0}6teB5P8am1+>U97uHyJW|F%@T#Pk*{r7oH^ zZJP4aR-hKiTGyvTMjIm0{&TNvh`ozg-H zymE>fauym-tQz#9nz2IYUgzaQ4KFJ}@Cn&6>eKAgpo-dz0piH7eFT-#=)_P`UOd+B z5(*GT?n)XjQ-LDeI6ic3XhFqGoFc@@LeXLyZx`$(cGr0D&~$0onA%JixL7T^h~-5S zgmFdANkWCa$eHiaMYC_iVH_Xu)3pIuFbMslXhc5^xrsw!*MwEPbP3WP1+11(8{yQ+q+;e+887+4QlF-< zI*LJ&NNZI%6GD;FLJWo`i%7@i)J7_UUnATQwq9a_Gcx5I@6F&E*#slrjWJQkVyQTs zXUF8FI9z3JLADpsF72wM=vFt@XrX6Jrj#2)nH6Zw5wA_=IASIO6)!Q4Ire-fB~LG> z_=FfsRyJ65ix#re;X6a9kcQVjMm5tAiMcZsFEM`V`b&kjlJWKep};|h2WpX1F9u-ov2~=hr zX)z5ERJ`P)<}io5P$;w)m4ev-`?zsJx|2>nc-GS%t|AFIm-B6dXdj=jo6EkJBgyWNuL_5Vj)j z*LC55n5kb|VY3-abQz0dN(voQGzO_O3Jj16nHAs&em5-j?abhE8(yslS$29trN@-g2LQR)TO@pdj zG=nyWyE0wiN`V+uWiXHi6X5y*90Np@-y>gg5xsnI;S8dkK-uD|tV|lKxg0C#gp+`m zyhimrKhgt3Sy{OYYoaaf^&e83O$En*D_mNQO$)#n8!YP;vOzW^yR^vU*x+R3Hyiek z5>nDFsRH$#6OR!;lh(yR0S$iAF<*^Bjj3)CLzX zF&(tmv;LK6iL}a;xPjV!m8hNu_pqe7yDE=yK=Ar?cbOe?1eF&J)3(j_Q7Qw^`!%?` zdffKhYk8V#EckVpi)6`_lXEcjpvgr@vRkXsR6`avA8Z9!5ic>jX<18qQdO70^9({K z7xld6C=uL+>?u@m;XEhAck9+KxnIw?xH!Q+lvq|!fy8}OGl|$Xko~;GBqHI{xrlqV z4N__qu_mdlbE#%hvCU*r@e-4&zR>l&AAkZr&%{B>FCrn3znN+#AG;KucD%&o$Hm6= zq0_6az&^3u=C%uTc(n=C#IDshK2Gg+l=$tAC1!Z`BUv}TNi~yIpW3^qc*!e^B$YUY z@wAya=%8HSAc2%L=%ovVD4oCEg^n@-r)XC}-*_5}fu7ESayte%yzl#jVrPN9Z-T!; z#g4Kv%0@y?T6Wry9Cbo{6a5V=aXQK>eTF5FEiMtt_+>asNX-*9E__!Y_$VsiK8b3^9r-_+ikEoqHJsOn zdpyUSz~iWZ_oq}d-gIr~LB&gq_oXirRLA6_Pzyg!h(K({Qz5QxWU84I?Cw3Oc!^12 zo4V(>)%h2Y()MjFk68$a%+wwiJFy zjynSsRu;INv~?5D+o_NZ+aUuoS=gxXBE(C~5dxA`;CptVXJk6N5Gy8W6SbKn>|w!6 zsyQnrX(Dk&$bgt6oM~_-_REIHNl4{_AC>~Ne3LD)Ls9Nd=O{zc^H{(bI9JW7T zu=#q4;pqL@cDi{%>*z)`usBKsi*pg?>Q`pJjt7xZ80HRYGYn+;#fXq*FlckTc`daW z26{r4mza**RvQc`L`>F~)MhwruYP3#K%`*=>=eL24z|faFj#LU2fK@3jISMp85{pL)D@5MHM?lLN>0Yln9zHK7o(IsHIwhQnIaCQHL~=*VG^s{LYad7#~$)WLFNW@e7-l}TnQo|S!^BfR&AY=J8U|yL5OpyO@Er$e8UP@?JqJK?x|{?W;+X~p zBFE?g+|)_FbxRr5Agm$gz~zW=g)VF42umKu1W8&Ph5tc#$f`X@>@qyO7OUdfXvp3j zaT);bayjB8&AT{cz<+_&*0KEU+T%@LX`hDqfxu%ln6@7d*@Rh%5;e=CVd>JZn zIpUTt>C&4cawJQ7@;`Ep=z`n;S*SsN?RM!oqRU7c3mjqsn0i#a#P(?a=ZG!~Xdtk) z<_O>Yvx~xEAj`j=KIe!o$bU?ZZjQM091&sUaJo5y#(=cgh`>5R*5z^pkHLB~{d9AL zuN@+Gav0ql;d_pVguR#?-5hc0IU*AK0K@6#2u+q|he+gqhSALtQTM*_K8<6TCpnC6 zj-W9hhS^JPCPz0%s0eS!cg5NO1K(kxuMP3U8vGVFv>eg3JGB{r)wKff6we0g<_K`m zB&f_7KsQHVl$#3aAN#rr@#F|d;BrJ1>|G;A{1fMhD2ez&R_!_Bl5<4VT^bH{uPsNM zr0yE$h^Vz1w$>csyMIO@M?%jlI7dWdP7DJ*13X7W=WsaP9O1jKMbFkSkQ3lJA{y(> z^wZ4|zIKTIfy3zL2;Xx=OcxHLnEMk8H9P4#_5xMNs>Un7XuMc3cXz84{t3u<{Z^s-G{@2gB5%%`WZ^YBL;^ z)R|pjDQ2hHGHx9Qf*?}8nwYSD$yP^Fgf9@!y-XVBrU$e$pf34eUMJ@Gf z2939JI7FpigVJ{bs}0JKk8()Fre7p|+pQXzK%;0v@jE#r7SwOXR=-T9<&OA^90I~cyDG_||GB0r$x~D0o_A&@+zl!l+8tVaf24N&NZZ1$0KBh}> zQ3G|zptRh-6Q#sQ(=ri;hAbASezjD;bcBx{$P|fY4uR3|e=jjp81sv}b_Gu+$3<-> z2gdU&NBvBY$$5@Luq~2qd5FoGP;4x-BiY4Mfp&+eW^xc+NUL6AD1q*1fNs12ba!C@ zG`+f+sm&xHh69>^H-7#Ir_0X28$W-VnSVLn`6ti_8rAI+s+o3}n!X$@d3J|aF$99$ zZ}QBtmC<*y%BWkjTX&Iz>F&S+2LPDK(cOM|z|$N+_k7L+_HzK;y_W;@z|t|5*p^DS zJmkk&)D8xK-E_T6+k1QepfSTTT#q)mdhYdjfoe!qLpmihJHwLe=?U_$mfw1OMtI0d zqyo8q^V_&yvFO(@Ju#kP5T5=qJ!9iIOe%-Lc)yqw4@TQrdfvrh5T1T_mXz+X3HZV$ z^(Rmvx9<5e)l5IEnqRk0gKx4Ko#GI1Y5&^!SfSUA90r>C$M{&GR|bbcnEJ=`;4Rl{ zI)_1!`p0NoAgXC?QJh0Qd3_k#a1yCF(1XKxMHy9w%lk@HLl)E3uLt9+Dl~>+CUF?pFAxlJB$I>r1%g5TV;J3B z=Bryj_!GlGMgVg9A^$N9a#r&15w&*aMgxWU>HkaO+wQgFF@p=1UHP92Nj3sSSrg{t5(>$zc$0fna8E804@( zFxUZ@-H^pBWWFa;J#aTHVa#^6bB^(ZN1H{qD zYCT&9fYWkj$^aGV$?w2%In#{XhFDN@rkp0_S_dX$UkjGNkK)NZi)zSXITLpE5^^?3 z{U_!5^tGq5q_Xm{YJc>_MGm9voXl*1exyFd^u$~YF-6oO#!D#rqQL=Y@~<5*zJxN;WB_@)@M z1$K}iSYX3vEC3IJ#a505_LVDVk%An-w7?c~1uSr4Mp%Iu3)EoaB~Sj=GI$03OBkms zDc|OzFJU@tB{WLgdIsRzuplH~Y%|=}lkyf_!pNRi0%_^#^c6u236`|&JmnW+pl)dz zBkUbsVv4_Oz3+!P4b~tLbfZEOPVGuHa7fX>_{CLG2NA z9WV@blt3`=au}u`-SQBdQw=%4Q!kSPe+WQM|5yzJ8Q3KJVydWvNSjapvD9XAuq*h* z`0CbwF^9o65C~=mhk=6zg87TXAkhbaQ6JdZe301#!HnbNAe9G#d5ps#ch`o&%O09@ z+D;9Fu}Ic_F;&#T0Qep&CWC=U&6fiVh~WT8#FqomkZK7?ySe~3b&_8VoB{+9;su8i zE+-85h%ONm4dK)Hh|Zdon{CBpf}=hJBfAa6nm|?}6(|T_@DhukBK!+2tDF9L5_R>Y z0whkO42h_KhkMBvSwZ(Tm^y;N;H;N{X|_r4qOpc;@PdxB&A{*J61vxcRD3D|+h9zP z)SGZn4Fp-tHte3-!Dd)a|MrZThADeM9pPEXo6yE!&%JcKQ}QZ{_q~5p*}lY&DF#_g zSp=w;n6mWm+vr!wYN(sFTN?-4;?b8=H)8-@!gs#yYYv163IsH$JqLnw2L#IDKmY^;n!|yxu>=Id%THzq z1W-VrA2|@VmOwz6h&v_;ZWa(|6bC{=2?+Ec2ZHkk1j6>u)I%x@2=oUB!u}EnC<{){ zBw>RI2xR9#*kl3%J;s5s(F6jbVb$s(UTXzuc}fN04`Qh;8r6AfFw(ns!_fji`0d8~ zJ%+(J@Ie*}e3rZDmPbBx;FGGBjR&u%eg;HH`UUbwZ9a`NAV8M|-a~^ZKyr>#eKQrB zcJ@3^skST2QPhugPL%DUKM^cvskegvgDnzKfF%HFG7N>(Mw$R2^09QF2&NBT(|yEm zJb#b1Nnc6`6Nj;Dz9!5MR1h1W&z9YI&tKmja-Cbe*>rL3iJ5bE9uBWpylh>A(z>p1 zpc{L6+F^+z=>+pwZv z<1-hid2jKN6^8odB{?%hluhiUX%8AFXdE=Uq1gTSj+aC@Y zIj^j$)d0Hv)-{*pfOu z+Vb*suc0k$>rCqHFgY{gOy_$N8?J93vS!xtxaFG{ zH#^-qcXIO+H*Z@=knrXm4>+11zwUTz>S?ezgGR}xpF7j}?no!0uN%@nWPRy0T*u7# z8aJl4|E6EVf-yf2J~l99eCWIdb@Mvr^?i79^DS+*8~}$en#?2?sbd$^&FbHzbDO#S zQ&0BXSJJ^EJauI7hI{UoghPWjJX|-~aA0t=&eJ|kEL&}LrXC^s*=cDXreoWWeaW~X`Pjdz$=zSz!e9o^nM(HLTW zC~BU0am&``Mb}R^-?O@_+4}qp^WrJ7X2&yxRfd^oSDiJ_oq59ifPBJSeCK@g?3^a% z_$CLm)8GFc3a2E71n5Z{1>6}-De+? zE6S~M(Mh8`<(2p4$-A1$cbxu6p4H*BJiWvK5*sm>&4oXeEX9=p~^=)vc#BM6lLGN*NXDs#mb?1Mltc`rOLh$uZn#- z-mmOw^19fq{e8;5y>E)Qe*TuSx7%K^gEB+eHTn}#{+r?O z?sKig(T#U1`_GRRvtC%O>|Zoblp0%^ri zN}~PYwYKtBVr^34imYYbN(jxjM!!No zazRDcT6A6?jfcC4{#pN~Gl7*}E4dCa3-LA0McrdeYtwHwy_bC6v?k|e)5|a4X!`O$ z8%(?JIA?kxTrz#IZi49(bCT)6nvJGcrpz#X)4Gr8%@vC2>BWzj4n5P#w5t7d)9#;k znf}~<+VpRk9gMWUvnlHv%_F0Q{NNwYlSw=MO`mxk$tzc^u#ri((X@b z%YWXGmfcWKdj8pWr5DcrA}xPxjI{jaI?{@s%cWN~8Kg(@r%D^^_LEk<(q7ts4;f&tRXEf=M=@m-{sgej78rd*me;A3g#b>B&k#GI2JANiRy zXWj==R_k-pL*G_OCFk7I6A$c=?%VW=wC(90()@lKr03_Zla?L)Ra&?{RC-z-NP22# zf_$0_Td%R?hbX%1MGy94>ry|~>tA>#7<)IZTko1{=2?+NjR zql1(;hrPJ9b@GV*bWZ%O zFj}hnV5NBQzeVDqlqHg3T3>P7kO|^XFGh(!X1c^5N5qRKqu!JnMW2;IUOy)8ZTp2( zKLpQf+Io%eTD@N5Ci-hVKnIP5`2evT!mA~IK=;!+Sbc>z4*Sd>pSa= zw{|>bytPw?F{ACbM$3#xj2*UpVeI|&4@PFE7W zJgHoTgmC*qWGcOvJNWJbbFk2=HFRYdLq)UAg!ibe*=7Pgm7(a`hCZ2^V5I(t{>j#? zziXW;VssU3GhsE^rn`+RGPsT~rF^;d}sBZ(tkXo8;it&)3*`~P4U_jBe&2`jI;cSS={PzS^ zG38A6@GG;;3YsG&oDzD;qJC~km3xAxct4C&KRX3m>cr>7&1w9zRM+wO@(kSwg0LRy zr$hAP;_RC^_@{9^(GWe)(w?Q9<7f;%b|orr=P7>G51|2+E1iR=uET#63uF*ftv)d$ zyq=!e{m9IvbRO{P`6%g0#jlLXjK#I&42T2k?=CAhYv&wfl)*U9I;u&Q#n z@;}vD5>`*iH0on{y0`iv^XK{akom8lX8zyK$-gAjD}FY5OCOI4&x)BS)e?Iy8Vrlc85li-rzIFDZhZ;qN;QJ9sjG^Y~ z7mk_>!ffVJ*GhBMhCb#&cdj%if79LEYUCz!vlge!nKv#qho->T>UeotT5EZRvR9tl zXOBE%)vfaUjS2Fc>sredD?gCu&;C=MmAOE68!0!a|C^Ce<>Q~e6yuG#%BSU}Vw+Km zmCq&@h>7p7QI2e!YuVX$v2whRL7Z9ehjR4DIx+8XxpH9pezEjISLNu&!=gLtg7V4H zWO2sGSLx;X6JpX7KJJ+;&`KP7@1&OAGIb%$t z!;?)f^*dx*QuHyKrL=T)skGv?&CA)`uS$*EJR|<{VLR!Xd9%e&q+g_v z0l%{G#x|YC8ij}ljcvZS8rwd+)7a`^tFcAQA!CF0tg+`ZelgzI?S5mEBM1>>aORnf z=#@F0-`gyFylxfU*0ChkG_;PF=t{jqbu|TYr;vu%*C3%(Bapm%OU-So_CELCn&a6u z;RaA)GwieK-sMeBJuoWH&`@4gnLjPDInternational " - - "Solar-Terrestrial Physics" } . - - "Discipline" 1: CDF_CHAR { "Space " - - "Physics>Magnetospheric " - - "Science" } . - - "Source_name" 1: CDF_CHAR { "GEOTAIL>Geomagnetic Tail" } . - - "Data_type" 1: CDF_CHAR { "K0>Key Parameter" } . - - "Descriptor" 1: CDF_CHAR { "CPI>Comprehensive Plasma " - - "Instrumentation" } . - - "Data_version" 1: CDF_CHAR { "1" } . - - "TITLE" 1: CDF_CHAR { "Geotail CPI" } . - - "TEXT" 1: CDF_CHAR { "GEOTAIL Prelaunch Report" } - 2: CDF_CHAR { " April 1992, SES-TD-92-007SY" } - 3: CDF_CHAR { " CPI-SW Solar Wind Analyzer" } - 4: CDF_CHAR { " Key Parameters" } - 5: CDF_CHAR { " Ion number density" } - 6: CDF_CHAR { " Average energy" } - 7: CDF_CHAR { " Bulk flow velocity" } - 8: CDF_CHAR { " CPI-HP Hot Plasma Analyzer" } - 9: CDF_CHAR { " Key Parameters" } - 10: CDF_CHAR { " Ion number density" } - 11: CDF_CHAR { " Average energy" } - 12: CDF_CHAR { " Bulk flow velocity" } - 13: CDF_CHAR { " CPI-IC Ion Composition " - - "Analyzer" } - 14: CDF_CHAR { " Key Parameters" } - 15: CDF_CHAR { " Principal Species" } - 16: CDF_CHAR { " H+" } - 17: CDF_CHAR { " He++" } - 18: CDF_CHAR { " He+" } - 19: CDF_CHAR { " O+" } . - - "MODS" 1: CDF_CHAR { "First Delivery version, " - - "7-OCT-1993" } - 2: CDF_CHAR { "Second version, " - - "12-APR-1994, RLD" } - 3: CDF_CHAR { " Changed dimensions to" - - " 3 and 2 at" } - 4: CDF_CHAR { " recommendation of " - - "Mona Kessel" } - 5: CDF_CHAR { " With help of Jeff " - - "Love (CDFSUPPORT)" } - 6: CDF_CHAR { " have cleaned up dim " - - "problems" } . - - "ADID_ref" 1: CDF_CHAR { "NSSD0091" } . - - "Logical_file_id" 1: CDF_CHAR { "GE_K0_CPI_19940726_V01" } . - - -#VARIABLEattributes - - "FIELDNAM" - "CATDESC" - "VALIDMIN" - "VALIDMAX" - "SCALEMIN" - "SCALEMAX" - "LABLAXIS" - "UNITS" - "FORMAT" - "MONOTON" - "VAR_TYPE" - "DICT_KEY" - "FILLVAL" - "LABL_PTR_1" - "UNIT_PTR" - "FORM_PTR" - "DEPEND_0" - "DEPEND_1" - - -#variables - -! No rVariables. - - -#zVariables - -! Variable Data Number Record Dimension -! Name Type Elements Dims Sizes Variance Variances -! -------- ---- -------- ---- ----- -------- --------- - - "Epoch" CDF_EPOCH 1 0 T - - ! Attribute Data - ! Name Type Value - ! -------- ---- ----- - - "FIELDNAM" CDF_CHAR { "Time Line" } - "VALIDMIN" CDF_EPOCH { 08-Sep-1992 00:00:00.000 } - "VALIDMAX" CDF_EPOCH { 31-Dec-2020 20:00:00.000 } - "SCALEMIN" CDF_EPOCH { 08-Sep-1992 00:00:00.000 } - "SCALEMAX" CDF_EPOCH { 31-Dec-2020 20:00:00.000 } - "LABLAXIS" CDF_CHAR { "CDF Epoch" } - "UNITS" CDF_CHAR { "ms" } - "MONOTON" CDF_CHAR { "INCREASE" } - "VAR_TYPE" CDF_CHAR { "data" } - "DICT_KEY" CDF_CHAR { "ISTP>class>subclass" } - "FILLVAL" CDF_REAL8 { -1.0e+31 } . - - ! RV values were not requested. - - -! Variable Data Number Record Dimension -! Name Type Elements Dims Sizes Variance Variances -! -------- ---- -------- ---- ----- -------- --------- - - "Time_PB5" CDF_INT4 1 1 3 T T - - ! Attribute Data - ! Name Type Value - ! -------- ---- ----- - - "FIELDNAM" CDF_CHAR { "Time Line" } - "VALIDMIN" CDF_INT4 { 1992, 252, 0 } - "VALIDMAX" CDF_INT4 { 2020, 365, 72000000 } - "SCALEMIN" CDF_INT4 { 1992, 252, 0 } - "SCALEMAX" CDF_INT4 { 2020, 365, 72000000 } - "VAR_TYPE" CDF_CHAR { "data" } - "DICT_KEY" CDF_CHAR { "ISTP>class>subclass" } - "FILLVAL" CDF_INT4 { -2147483648 } - "LABL_PTR_1" - CDF_CHAR { "label_time" } - "UNIT_PTR" CDF_CHAR { "unit_time" } - "FORM_PTR" CDF_CHAR { "format_time" } - "DEPEND_0" CDF_CHAR { "Epoch" } - "DEPEND_1" CDF_CHAR { "unit_time" } . - - ! RV values were not requested. - - -! Variable Data Number Record Dimension -! Name Type Elements Dims Sizes Variance Variances -! -------- ---- -------- ---- ----- -------- --------- - - "SW_P_Den" CDF_REAL4 1 0 T - - ! Attribute Data - ! Name Type Value - ! -------- ---- ----- - - "FIELDNAM" CDF_CHAR { "Ion Number Density, SW" } - "CATDESC" CDF_CHAR { "Number density for positive ions in " - - "the energy range 144class>subclass" } - "FILLVAL" CDF_REAL4 { -1.0e+31 } - "DEPEND_0" CDF_CHAR { "Epoch" } . - - ! RV values were not requested. - - -! Variable Data Number Record Dimension -! Name Type Elements Dims Sizes Variance Variances -! -------- ---- -------- ---- ----- -------- --------- - - "SW_P_AVGE" CDF_REAL4 1 0 T - - ! Attribute Data - ! Name Type Value - ! -------- ---- ----- - - "FIELDNAM" CDF_CHAR { "Ion Average Energy, SW" } - "CATDESC" CDF_CHAR { "Ion average energy for positive ions " - - "in the energy range 144(sw)" } - "UNITS" CDF_CHAR { "eV" } - "FORMAT" CDF_CHAR { "f7.0" } - "VAR_TYPE" CDF_CHAR { "data" } - "DICT_KEY" CDF_CHAR { "ISTP>class>subclass" } - "FILLVAL" CDF_REAL4 { -1.0e+31 } - "DEPEND_0" CDF_CHAR { "Epoch" } . - - ! RV values were not requested. - - -! Variable Data Number Record Dimension -! Name Type Elements Dims Sizes Variance Variances -! -------- ---- -------- ---- ----- -------- --------- - - "SW_V" CDF_REAL4 1 1 2 T T - - ! Attribute Data - ! Name Type Value - ! -------- ---- ----- - - "FIELDNAM" CDF_CHAR { "Ion bulk Flow, SW" } - "CATDESC" CDF_CHAR { "Solar Wind Ion flow velocity for " - - "positive ions in the energy range " - - "144class>subclass" } - "FILLVAL" CDF_REAL4 { -1.0e+31 } - "LABL_PTR_1" - CDF_CHAR { "label_v" } - "DEPEND_0" CDF_CHAR { "Epoch" } - "DEPEND_1" CDF_CHAR { "cartesian" } . - - ! RV values were not requested. - - -! Variable Data Number Record Dimension -! Name Type Elements Dims Sizes Variance Variances -! -------- ---- -------- ---- ----- -------- --------- - - "Quality_SW" CDF_REAL4 1 0 T - - ! Attribute Data - ! Name Type Value - ! -------- ---- ----- - - "FIELDNAM" CDF_CHAR { "Data Quality Percentage" } - "CATDESC" CDF_CHAR { "0.0: adequate data quality;100.0: " - - "inadequate data quality." } - "VALIDMIN" CDF_REAL4 { 0.0 } - "VALIDMAX" CDF_REAL4 { 100.0 } - "SCALEMIN" CDF_REAL4 { 0.0 } - "SCALEMAX" CDF_REAL4 { 100.0 } - "LABLAXIS" CDF_CHAR { "SW Quality" } - "UNITS" CDF_CHAR { " " } - "FORMAT" CDF_CHAR { "F5.2 " } - "VAR_TYPE" CDF_CHAR { "data" } - "DICT_KEY" CDF_CHAR { "ISTP>class>subclass" } - "FILLVAL" CDF_REAL4 { -1.0e+31 } - "DEPEND_0" CDF_CHAR { "Epoch" } . - - ! RV values were not requested. - - -! Variable Data Number Record Dimension -! Name Type Elements Dims Sizes Variance Variances -! -------- ---- -------- ---- ----- -------- --------- - - "GAP_FLAG" CDF_INT4 1 0 T - - ! Attribute Data - ! Name Type Value - ! -------- ---- ----- - - "FIELDNAM" CDF_CHAR { "Post Gap Flag" } - "CATDESC" CDF_CHAR { "0: no gap immediately prior to this " - - "record;1: gap prior due to instrument" - - " mode;2: gap prior due to missing " - - "SIRIUS data;3: gap prior due to noisy" - - " SIRIUS data;20: gap prior due to " - - "missing Minor Frame(s)." } - "VALIDMIN" CDF_INT4 { 0 } - "VALIDMAX" CDF_INT4 { 5 } - "SCALEMIN" CDF_INT4 { 0 } - "SCALEMAX" CDF_INT4 { 5 } - "LABLAXIS" CDF_CHAR { "Data Gap" } - "UNITS" CDF_CHAR { " " } - "FORMAT" CDF_CHAR { "I1" } - "VAR_TYPE" CDF_CHAR { "data" } - "DICT_KEY" CDF_CHAR { "ISTP>class>subclass" } - "FILLVAL" CDF_INT4 { -2147483648 } - "DEPEND_0" CDF_CHAR { "Epoch" } . - - ! RV values were not requested. - - -! Variable Data Number Record Dimension -! Name Type Elements Dims Sizes Variance Variances -! -------- ---- -------- ---- ----- -------- --------- - - "HP_P_Den" CDF_REAL4 1 0 T - - ! Attribute Data - ! Name Type Value - ! -------- ---- ----- - - "FIELDNAM" CDF_CHAR { "Ion Number Density, HP" } - "CATDESC" CDF_CHAR { "Ion number density in the range " - - "50class>subclass" } - "FILLVAL" CDF_REAL4 { -1.0e+31 } - "DEPEND_0" CDF_CHAR { "Epoch" } . - - ! RV values were not requested. - - -! Variable Data Number Record Dimension -! Name Type Elements Dims Sizes Variance Variances -! -------- ---- -------- ---- ----- -------- --------- - - "HP_P_AVGE" CDF_REAL4 1 0 T - - ! Attribute Data - ! Name Type Value - ! -------- ---- ----- - - "FIELDNAM" CDF_CHAR { "Ion Average Energy, HP" } - "CATDESC" CDF_CHAR { "Ion average energy in the range " - - "1(hp)" } - "UNITS" CDF_CHAR { "eV" } - "FORMAT" CDF_CHAR { "F7.0" } - "VAR_TYPE" CDF_CHAR { "data" } - "DICT_KEY" CDF_CHAR { "ISTP>class>subclass" } - "FILLVAL" CDF_REAL4 { -1.0e+31 } - "DEPEND_0" CDF_CHAR { "Epoch" } . - - ! RV values were not requested. - - -! Variable Data Number Record Dimension -! Name Type Elements Dims Sizes Variance Variances -! -------- ---- -------- ---- ----- -------- --------- - - "HP_V" CDF_REAL4 1 1 2 T T - - ! Attribute Data - ! Name Type Value - ! -------- ---- ----- - - "FIELDNAM" CDF_CHAR { "Ion bulk Flow, HP" } - "CATDESC" CDF_CHAR { "Bulk flow velocity for ions in the " - - "range 1class>subclass" } - "FILLVAL" CDF_REAL4 { -1.0e+31 } - "LABL_PTR_1" - CDF_CHAR { "label_v" } - "DEPEND_0" CDF_CHAR { "Epoch" } - "DEPEND_1" CDF_CHAR { "cartesian" } . - - ! RV values were not requested. - - -! Variable Data Number Record Dimension -! Name Type Elements Dims Sizes Variance Variances -! -------- ---- -------- ---- ----- -------- --------- - - "HP_E_AVGE" CDF_REAL4 1 0 T - - ! Attribute Data - ! Name Type Value - ! -------- ---- ----- - - "FIELDNAM" CDF_CHAR { "Electron Average Energy, HP" } - "CATDESC" CDF_CHAR { "Average energy for electrons in the " - - "range 50(hp)" } - "UNITS" CDF_CHAR { "eV" } - "FORMAT" CDF_CHAR { "F7.0" } - "VAR_TYPE" CDF_CHAR { "data" } - "DICT_KEY" CDF_CHAR { "ISTP>class>subclass" } - "FILLVAL" CDF_REAL4 { -1.0e+31 } - "DEPEND_0" CDF_CHAR { "Epoch" } . - - ! RV values were not requested. - - -! Variable Data Number Record Dimension -! Name Type Elements Dims Sizes Variance Variances -! -------- ---- -------- ---- ----- -------- --------- - - "W" CDF_REAL4 1 0 T - - ! Attribute Data - ! Name Type Value - ! -------- ---- ----- - - "FIELDNAM" CDF_CHAR { "Plasma Pressure" } - "CATDESC" CDF_CHAR { "Pressure for plasma in the range " - - "50class>subclass" } - "FILLVAL" CDF_REAL4 { -1.0e+31 } - "DEPEND_0" CDF_CHAR { "Epoch" } . - - ! RV values were not requested. - - -! Variable Data Number Record Dimension -! Name Type Elements Dims Sizes Variance Variances -! -------- ---- -------- ---- ----- -------- --------- - - "Quality_HP" CDF_REAL4 1 0 T - - ! Attribute Data - ! Name Type Value - ! -------- ---- ----- - - "FIELDNAM" CDF_CHAR { "Data Quality Percentage" } - "CATDESC" CDF_CHAR { "0.0: adequate data quality;100.0: " - - "inadequate data quality." } - "VALIDMIN" CDF_REAL4 { 0.0 } - "VALIDMAX" CDF_REAL4 { 100.0 } - "SCALEMIN" CDF_REAL4 { 0.0 } - "SCALEMAX" CDF_REAL4 { 100.0 } - "LABLAXIS" CDF_CHAR { "HP Quality" } - "UNITS" CDF_CHAR { " " } - "FORMAT" CDF_CHAR { "F5.2 " } - "VAR_TYPE" CDF_CHAR { "data" } - "DICT_KEY" CDF_CHAR { "ISTP>class>subclass" } - "FILLVAL" CDF_REAL4 { -1.0e+31 } - "DEPEND_0" CDF_CHAR { "Epoch" } . - - ! RV values were not requested. - - -! Variable Data Number Record Dimension -! Name Type Elements Dims Sizes Variance Variances -! -------- ---- -------- ---- ----- -------- --------- - - "Quality_IC" CDF_REAL4 1 0 T - - ! Attribute Data - ! Name Type Value - ! -------- ---- ----- - - "FIELDNAM" CDF_CHAR { "Data Quality Percentage" } - "CATDESC" CDF_CHAR { "0.0: adequate data quality;100.0: " - - "inadequate data quality." } - "VALIDMIN" CDF_REAL4 { 0.0 } - "VALIDMAX" CDF_REAL4 { 100.0 } - "SCALEMIN" CDF_REAL4 { 0.0 } - "SCALEMAX" CDF_REAL4 { 100.0 } - "LABLAXIS" CDF_CHAR { "IC Quality" } - "UNITS" CDF_CHAR { " " } - "FORMAT" CDF_CHAR { "F5.2 " } - "VAR_TYPE" CDF_CHAR { "data" } - "DICT_KEY" CDF_CHAR { "ISTP>class>subclass" } - "FILLVAL" CDF_REAL4 { -1.0e+31 } - "DEPEND_0" CDF_CHAR { "Epoch" } . - - ! RV values were not requested. - - -! Variable Data Number Record Dimension -! Name Type Elements Dims Sizes Variance Variances -! -------- ---- -------- ---- ----- -------- --------- - - "H_P_FLAG" CDF_INT1 1 0 T - - ! Attribute Data - ! Name Type Value - ! -------- ---- ----- - - "FIELDNAM" CDF_CHAR { "H+ FLAG " } - "CATDESC" CDF_CHAR { "Non-zero value indicates presence of " - - "singly ionized hydrogen" } - "VALIDMIN" CDF_INT1 { 0 } - "VALIDMAX" CDF_INT1 { 99 } - "SCALEMIN" CDF_INT1 { 0 } - "SCALEMAX" CDF_INT1 { 99 } - "LABLAXIS" CDF_CHAR { "H+" } - "UNITS" CDF_CHAR { " " } - "FORMAT" CDF_CHAR { "I2" } - "VAR_TYPE" CDF_CHAR { "data" } - "DICT_KEY" CDF_CHAR { "ISTP>class>subclass" } - "FILLVAL" CDF_INT1 { -128 } - "DEPEND_0" CDF_CHAR { "Epoch" } . - - ! RV values were not requested. - - -! Variable Data Number Record Dimension -! Name Type Elements Dims Sizes Variance Variances -! -------- ---- -------- ---- ----- -------- --------- - - "HE_PP_FLAG" CDF_INT1 1 0 T - - ! Attribute Data - ! Name Type Value - ! -------- ---- ----- - - "FIELDNAM" CDF_CHAR { "Doubly ionized Helium, He++ " } - "CATDESC" CDF_CHAR { "Non-zero value indicates presence of " - - "doubly ionized helium" } - "VALIDMIN" CDF_INT1 { 0 } - "VALIDMAX" CDF_INT1 { 99 } - "SCALEMIN" CDF_INT1 { 0 } - "SCALEMAX" CDF_INT1 { 99 } - "LABLAXIS" CDF_CHAR { "He++" } - "UNITS" CDF_CHAR { " " } - "FORMAT" CDF_CHAR { "I2" } - "VAR_TYPE" CDF_CHAR { "data" } - "DICT_KEY" CDF_CHAR { "ISTP>class>subclass" } - "FILLVAL" CDF_INT1 { -128 } - "DEPEND_0" CDF_CHAR { "Epoch" } . - - ! RV values were not requested. - - -! Variable Data Number Record Dimension -! Name Type Elements Dims Sizes Variance Variances -! -------- ---- -------- ---- ----- -------- --------- - - "HE_P_FLAG" CDF_INT1 1 0 T - - ! Attribute Data - ! Name Type Value - ! -------- ---- ----- - - "FIELDNAM" CDF_CHAR { "Singly ionized Helium, He+ " } - "CATDESC" CDF_CHAR { "Non-zero value indicates presence of " - - "singly ionized helium" } - "VALIDMIN" CDF_INT1 { 0 } - "VALIDMAX" CDF_INT1 { 99 } - "SCALEMIN" CDF_INT1 { 0 } - "SCALEMAX" CDF_INT1 { 99 } - "LABLAXIS" CDF_CHAR { "He+" } - "UNITS" CDF_CHAR { " " } - "FORMAT" CDF_CHAR { "I2" } - "VAR_TYPE" CDF_CHAR { "data" } - "DICT_KEY" CDF_CHAR { "ISTP>class>subclass" } - "FILLVAL" CDF_INT1 { -128 } - "DEPEND_0" CDF_CHAR { "Epoch" } . - - ! RV values were not requested. - - -! Variable Data Number Record Dimension -! Name Type Elements Dims Sizes Variance Variances -! -------- ---- -------- ---- ----- -------- --------- - - "O_P_FLAG" CDF_INT1 1 0 T - - ! Attribute Data - ! Name Type Value - ! -------- ---- ----- - - "FIELDNAM" CDF_CHAR { "Singly ionized Oxygen, O+ " } - "CATDESC" CDF_CHAR { "Non-zero value indicates presence of " - - "singly ionized atomic oxygen" } - "VALIDMIN" CDF_INT1 { 0 } - "VALIDMAX" CDF_INT1 { 99 } - "SCALEMIN" CDF_INT1 { 0 } - "SCALEMAX" CDF_INT1 { 99 } - "LABLAXIS" CDF_CHAR { "O+" } - "UNITS" CDF_CHAR { " " } - "FORMAT" CDF_CHAR { "I2" } - "VAR_TYPE" CDF_CHAR { "data" } - "DICT_KEY" CDF_CHAR { "ISTP>class>subclass" } - "FILLVAL" CDF_INT1 { -128 } - "DEPEND_0" CDF_CHAR { "Epoch" } . - - ! RV values were not requested. - - -! Variable Data Number Record Dimension -! Name Type Elements Dims Sizes Variance Variances -! -------- ---- -------- ---- ----- -------- --------- - - "label_time" CDF_CHAR 27 1 3 F T - - ! Attribute Data - ! Name Type Value - ! -------- ---- ----- - - "FIELDNAM" CDF_CHAR { "Label for Time_PB5" } - "VAR_TYPE" CDF_CHAR { "metadata" } - "DICT_KEY" CDF_CHAR { "ISTP>class>subclass" } . - - ! NRV values follow... - - [1] = { "Year " } - [2] = { "Day of Year (Jan 1 = Day 1)" } - [3] = { "Elapsed millisecond of day " } - - -! Variable Data Number Record Dimension -! Name Type Elements Dims Sizes Variance Variances -! -------- ---- -------- ---- ----- -------- --------- - - "unit_time" CDF_CHAR 4 1 3 F T - - ! Attribute Data - ! Name Type Value - ! -------- ---- ----- - - "FIELDNAM" CDF_CHAR { "Units for Time_PB5" } - "VAR_TYPE" CDF_CHAR { "metadata" } - "DICT_KEY" CDF_CHAR { "ISTP>class>subclass" } . - - ! NRV values follow... - - [1] = { "year" } - [2] = { "day " } - [3] = { "msec" } - - -! Variable Data Number Record Dimension -! Name Type Elements Dims Sizes Variance Variances -! -------- ---- -------- ---- ----- -------- --------- - - "format_time" CDF_CHAR 2 1 3 F T - - ! Attribute Data - ! Name Type Value - ! -------- ---- ----- - - "FIELDNAM" CDF_CHAR { "Format for Time_PB5" } - "VAR_TYPE" CDF_CHAR { "metadata" } - "DICT_KEY" CDF_CHAR { "ISTP>class>subclass" } . - - ! NRV values follow... - - [1] = { "I4" } - [2] = { "I3" } - [3] = { "I8" } - - -! Variable Data Number Record Dimension -! Name Type Elements Dims Sizes Variance Variances -! -------- ---- -------- ---- ----- -------- --------- - - "label_v" CDF_CHAR 2 1 2 F T - - ! Attribute Data - ! Name Type Value - ! -------- ---- ----- - - "FIELDNAM" CDF_CHAR { "Label for velocity" } - "VAR_TYPE" CDF_CHAR { "metadata" } - "DICT_KEY" CDF_CHAR { "ISTP>class>subclass" } . - - ! NRV values follow... - - [1] = { "Vx" } - [2] = { "Vy" } - - -! Variable Data Number Record Dimension -! Name Type Elements Dims Sizes Variance Variances -! -------- ---- -------- ---- ----- -------- --------- - - "cartesian" CDF_CHAR 1 1 2 F T - - ! Attribute Data - ! Name Type Value - ! -------- ---- ----- - - "FIELDNAM" CDF_CHAR { "Dimension Label" } - "VAR_TYPE" CDF_CHAR { "metadata" } - "DICT_KEY" CDF_CHAR { "ISTP>vector>cartesian" } . - - ! NRV values follow... - - [1] = { "x" } - [2] = { "y" } - - -#end diff --git a/cdf36_3-dist/samples/geocpi1.cdf b/cdf36_3-dist/samples/geocpi1.cdf deleted file mode 100644 index b3c016a41b96434bf568d7b6fdcd791ff200ea8e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44688 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 diff --git a/cdf36_3-dist/samples/geocpi2.cdf b/cdf36_3-dist/samples/geocpi2.cdf deleted file mode 100644 index df990cdfac6d6a5cf4f69cceac054f871104636b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44693 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 -#include - -#include "cdf.h" - -/****************************************************************************** -* Function prototypes. -******************************************************************************/ - -void StatusHandler (long); -void DynamicErrorHandle (CDFid); - -/****************************************************************************** -* MAIN. -******************************************************************************/ -int main (int argc, char **argv) { - -CDFid id; /* CDF identifier. */ -CDFstatus status; /* CDF completion status. */ - -void *buffer = NULL, *units, *lat; -void *time, *image, *pixelValue; -char varName[CDF_VAR_NAME_LEN256+1], - attrName[CDF_ATTR_NAME_LEN256+1], subincrement, - copyright[CDF_COPYRIGHT_LEN+1]; -int i, j; -long TimeVarNum, ImageVarNum, LatVarNum, attrNum, recNum, numDims, recVary, - dimIndices[CDF_MAX_DIMS], dimCounts[CDF_MAX_DIMS], - dimInterval[CDF_MAX_DIMS], dimSizes[CDF_MAX_DIMS], dimVarys[CDF_MAX_DIMS]; -long datatype, numElements, numRecs, arraySize, attrScope, maxgEntry, - maxrEntry, maxzEntry; -long encoding, majority, maxrRec, numrVars, maxzRec, numzVars, numAttrs; -long version, release, increment; -long ilen; - -/****************************************************************************** -* Get the current CDF library version number. -******************************************************************************/ -status = CDFgetLibraryVersion (&version, &release, &increment, &subincrement); -if (status != CDF_OK) StatusHandler (status); -printf ("Current CDF library version: CDF %d.%d.%d\n\n", - version, release, increment); - -status = CDFgetLibraryCopyright (copyright); -if (status != CDF_OK) StatusHandler (status); -printf ("CDF library copyright:\n\t%s\n\n", copyright); - -/****************************************************************************** -* Open the CDF. -******************************************************************************/ -if (argc > 1) - status = CDFopenCDF (argv[1], &id); -else - status = CDFopenCDF ("example1", &id); -if (status != CDF_OK) StatusHandler (status); - -status = CDFgetCopyright (id, copyright); -if (status != CDF_OK) StatusHandler (status); -printf ("CDF copyright:\n\t%s\n\n", copyright); - -/* Get the CDF version that was used to create this CDF file */ -status = CDFgetVersion (id, &version, &release, &increment); -if (status != CDF_OK) StatusHandler (status); - -status = CDFinquireCDF (id, - &numDims, dimSizes, /* only good for rVars */ - &encoding, &majority, - &maxrRec, &numrVars, /* only good for rVars */ - &maxzRec, &numzVars, &numAttrs); -if (status != CDF_OK) StatusHandler (status); - -printf ("CDF file name: example1.cdf\n"); -printf ("\tVersion: CDF %d.%d.%d\n", version, release, increment); -printf ("\tNumber of variables: %d rVars, %d zVars\n", numrVars, numzVars); -printf ("\tNumber of attributes (global & variable): %d\n", numAttrs); -printf ("\tMax record number for zVariables: %d\n\n", maxzRec); - -/****************************************************************************** -* Read the value of the global attribute named TITLE. -******************************************************************************/ -attrNum = CDFgetAttrNum (id, "TITLE"); -if (attrNum < CDF_OK) StatusHandler (status); - -status = CDFinquireAttr (id, attrNum, attrName, &attrScope, - &maxgEntry, - &maxrEntry, /* only applicable for variable attr */ - &maxzEntry); /* only applicable for variable attr */ -if (status != CDF_OK) StatusHandler (status); - -if (attrScope == GLOBAL_SCOPE) { - printf ("Global attribute TITLE:\n"); - for (i=0; i <= maxgEntry; i++) { - status = CDFinquireAttrgEntry (id, attrNum, (long) i, &datatype, - &numElements); - if (status != CDF_OK) StatusHandler (status); - - status = CDFgetDataTypeSize (datatype, &ilen); - ilen = ilen * numElements; - if (datatype == CDF_CHAR || datatype == CDF_UCHAR) ++ilen; - buffer = (void *) malloc (ilen); - if (buffer == NULL) DynamicErrorHandle (id); - - status = CDFgetAttrgEntry (id, attrNum, (long) i, buffer); - if (status != CDF_OK) StatusHandler (status); - ((char *) buffer)[numElements] = '\0'; - printf (" entry #%d: %s\n", i, buffer); - free (buffer); - } -} - -/****************************************************************************** -* Read the value of the zVariable attribute named UNITS and FIELDNAM that -* are associated with the Time variable -******************************************************************************/ -TimeVarNum = CDFgetVarNum (id, "Time"); -if (TimeVarNum < CDF_OK) StatusHandler (TimeVarNum); - -attrNum = CDFgetAttrNum (id, "FIELDNAM"); -if (attrNum < CDF_OK) StatusHandler (attrNum); - -status = CDFinquireAttrzEntry (id, attrNum, TimeVarNum, - &datatype, &numElements); -if (status != CDF_OK) StatusHandler (status); - -if (datatype == CDF_CHAR) { - buffer = (char *) malloc (sizeof(char) * numElements + 1); - if (buffer == NULL) DynamicErrorHandle (id); - status = CDFgetAttrzEntry (id, attrNum, TimeVarNum, buffer); - ((char *) buffer)[numElements] = '\0'; - printf ("\nTime:\n FIELDNAME = %s\n", buffer); - free (buffer); -} - -attrNum = CDFgetAttrNum (id, "UNITS"); -if (attrNum < CDF_OK) StatusHandler (attrNum); - -status = CDFinquireAttrzEntry (id, attrNum, TimeVarNum, - &datatype, &numElements); -if (status != CDF_OK) StatusHandler (status); - -status = CDFgetDataTypeSize (datatype, &ilen); -ilen = ilen * numElements; -if (datatype == CDF_CHAR || datatype == CDF_UCHAR) ++ilen; -units = (void *) malloc (ilen); -if (buffer == NULL) DynamicErrorHandle (id); -status = CDFgetAttrzEntry (id, attrNum, TimeVarNum, units); -if (status != CDF_OK) StatusHandler (status); -((char *)units)[numElements] = '\0'; -printf (" UNITS = %s\n", units); -free (units); - -/****************************************************************************** -* Read data for 'Time' zVariable. -******************************************************************************/ -recNum = 0L; -status = CDFgetDataTypeSize (datatype, &ilen); -ilen = ilen * numElements; -if (datatype == CDF_CHAR || datatype == CDF_UCHAR) ++ilen; -time = (void *) malloc (ilen); -if (time == NULL) DynamicErrorHandle (id); -status = CDFgetzVarRecordData (id, TimeVarNum, recNum, time); -if (status != CDF_OK) StatusHandler (status); - -printf ("Time:\n Record #1: %d\n", *(int *) time); -recNum = 1L; -status = CDFgetzVarRecordData (id, TimeVarNum, recNum, time); -if (status != CDF_OK) StatusHandler (status); -printf (" Record #2: %d\n", *(int *)time); -free (time); - -/****************************************************************************** -* Delete the second record from 'Time' zVariable. Record number starts at 0. -******************************************************************************/ -status = CDFdeletezVarRecords (id, TimeVarNum, - 1L, /* start record number */ - 1L); /* end record number */ -if (status != CDF_OK) StatusHandler (status); - -/****************************************************************************** -* Read data for 'Latitude' zVariable. -******************************************************************************/ -dimIndices[0] = 0; -dimIndices[1] = 0; -recNum = 0; - -LatVarNum = CDFgetVarNum(id,"Latitude"); -if (LatVarNum < CDF_OK) StatusHandler (LatVarNum); - -status = CDFsetzVarSeqPos (id, LatVarNum, recNum, dimIndices); -if (status != CDF_OK) StatusHandler (status); - -printf ("\nLatitude:\n Record #1:\n"); - -/* Read one value at a time - inefficient way of reading data if the whole */ -/* array needs to be read. */ -status = CDFgetDataTypeSize (datatype, &ilen); -ilen = ilen * numElements; -if (datatype == CDF_CHAR || datatype == CDF_UCHAR) ++ilen; -lat = (void *) malloc (ilen); -if (lat == NULL) DynamicErrorHandle (id); -for (i=0; i < 181; i++) { - status = CDFgetzVarSeqData (id, LatVarNum, lat); - if (status != CDF_OK) StatusHandler (status); - printf ("%d ", *(short *)lat); -} -printf ("\n"); -free (lat); - -/****************************************************************************** -* Read data for 'Image' zVariable (10 x 20 array). -******************************************************************************/ -dimIndices[0] = 0; -dimIndices[1] = 0; -dimInterval[0] = 1; -dimInterval[1] = 1; - -ImageVarNum = CDFgetVarNum (id, "Image"); -if (ImageVarNum < CDF_OK) StatusHandler (ImageVarNum); - -status = CDFinquirezVar (id, ImageVarNum, varName, &datatype, - &numElements, &numDims, dimSizes, &recVary, dimVarys); -if (status != CDF_OK) StatusHandler (status); - -status = CDFgetzVarNumRecsWritten (id, ImageVarNum, &numRecs); -if (status != CDF_OK) StatusHandler (status); - -status = CDFgetDataTypeSize (datatype, &ilen); -ilen = ilen * numElements; -if (buffer == NULL) DynamicErrorHandle (id); - -arraySize = 1; -for (i=0; i < numDims; i++) { - arraySize *= dimSizes[i]; - dimCounts[i] = dimSizes[i]; -} -image = (void *) malloc (ilen * arraySize * numRecs); - -/* read 3 records in one scoop */ -status = CDFhyperGetzVarData (id, ImageVarNum, - 0L, /* record start */ - 3L, /* # of records to read */ - 1L, /* record interval */ - dimIndices, /* dimension dimIndices */ - dimCounts, /* dimension counts */ - dimInterval, /* dimension interval */ - image); -if (status != CDF_OK) StatusHandler (status); -printf ("\nImage: \n"); -for (i=0; i < numRecs; i++) { - printf ("Record # %d:\n", i); - for (j=0; j < arraySize; j++) - printf ("%d ", *(((int *)image)+i*arraySize+j)); - printf ("\n\n"); -} -free (image); - -/* Read a single value - image[1,1] of the second record */ -recNum = 1; /* record number starts at 0 */ -dimIndices[0] = 1; -dimIndices[1] = 1; - -pixelValue = (void *) malloc (ilen); -if (pixelValue == NULL) DynamicErrorHandle (id); -status = CDFgetzVarData (id, ImageVarNum, recNum, dimIndices, pixelValue); -if (status != CDF_OK) StatusHandler (status); -printf ("Image record #2:[1,1] = %d\n", *(int *)pixelValue); -free (pixelValue); - -/****************************************************************************** -* Close CDF. -******************************************************************************/ -status = CDFcloseCDF (id); -if (status != CDF_OK) StatusHandler (status); - -return 0; -} - -/****************************************************************************** -* Status handler. -******************************************************************************/ -void StatusHandler (status) -CDFstatus status; -{ -char message[CDF_STATUSTEXT_LEN+1]; - -if (status < CDF_WARN) { - printf ("An error has occurred, halting...\n"); - CDFgetStatusText (status, message); - printf ("%s\n", message); - exit (1); -} -else - if (status < CDF_OK) { - printf ("Warning, function may not have completed as expected...\n"); - CDFgetStatusText (status, message); - printf ("%s\n", message); - } - else - if (status > CDF_OK) { - printf ("Function completed successfully, but be advised that...\n"); - CDFgetStatusText (status, message); - printf ("%s\n", message); - } -return; -} - -/****************************************************************************** -* Dynamic allocation error handler. -******************************************************************************/ -void DynamicErrorHandle (id) -CDFid id; -{ - CDFstatus status; - printf ("An error has occurred while doing malloc, halting...\n"); - status = CDFcloseCDF (id); - if (status != CDF_OK) StatusHandler (status); - return; -} diff --git a/cdf36_3-dist/samples/zfia10x.cdf b/cdf36_3-dist/samples/zfia10x.cdf deleted file mode 100644 index 44a808887fe395de6d3d62722935554c7aee1c7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21387 zcmeHPdvH|Oc|S53DKf^G00s|+6Wd9I4YH6ZkG6rkcVAlAmBj8M^KfQZYZtU(wJWby zHpH2!qOmhX@z{*rNeRuQa)LYj(ROH?I!wlHS0ZLo54eo$*oo67wBusSs z{=W0Ldv>{32r>Ad<(s+pJNMl4{qFZX=kC2%I{V+Ofw9Y%nV^OZU^pgfu&|p&4Yl0@ z?$BjL&Hlo`Kq1cqsZxrE3dMm`iMRLzp_R=o{*~Nc7(7_a?&~k{H5)g!t!{5?TgSV6 z3ExBEM9ANq7)mPN#}#E(eBk0?D7rmomlXa50m~ zKbpyvR`FP>crcgBr+ItZ`t@u0_JpswB|?MpnG#>UnnRt$_MV>Zc+!eS63Ij`-rGtF zw9-Xd!`;0rn;pAm*w_KND*rI{P^ZLdI3juCYYO`gavj>_*QyI^pQ3+>9NQ28pDo+7 zLXzL|FW@Rh4wt9YUgIPq$!L&sUUjnm4!!`BZ>=%ALmju9{n~F27mB$w4;PV9vD7{! zQ7ccBQl)GmKeUR6viUrZQC}oKg#AXJ<6$#ejiUxKWrm0tU7^xHdkk&LfKO0=C=!eY zx_q(9`MPXH$sf}4*>8iB-*mJV%6_>gpAjXq0~tP)&0{KQjI87RwLT3SgKrkR|>hIh=4!_R^vJxYpf=;r^NCXDrOQ8$iNcE8jJFGN~}meojJg} z3YAq(YQJ$3%0Ad;}eu;rh$uD= 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 PU`^bqE(X5~+minWv%fr} diff --git a/cdf36_3-dist/src/definitions/definitions.B b/cdf36_3-dist/src/definitions/definitions.B deleted file mode 100644 index 737dcca..0000000 --- a/cdf36_3-dist/src/definitions/definitions.B +++ /dev/null @@ -1,67 +0,0 @@ -#------------------------------------------------------------------------------ -# -# NSSDC/CDF Definitions for using CDF. -# Bourne shell. -# -# Version 1.2, 19-Mar-96, Hughes STX. -# -# Modification History: -# -# V1.0 14-Jun-95, J Love Original version. -# V1.1 18-Jul-95, J Love Added CDFexport. -# V1.2 19-Mar-96, J Love CDF V2.6. -# V1.3 05-Aug-08, M Liu CDF V3.3. -# V1.4 12-Apr-11, M Liu CDF V3.3.2 for adding leap seconds env. var. -# -#----------------------------------------------------------------------------- -# Before using this script file, change the definition of CDF_BASE for where -# CDF was installed on your machine (ie. the directory containing the `bin', -# `lib', and `include' directories). All CDF users can then use the command -# -# $ . /bin/definitions.B -# -# to setup the necessary environment variables (where is the full -# directory path leading to where CDF was installed). -# -# Aliases are not available with the Bourne shell. The toolkit programs must -# be invoked by specifying the actual name of the executable. The executables -# are found in ${CDF_BIN} (after the installation step of building the CDF -# distribution). For example, to execute CDFedit the following would be used: -# -# $ ${CDF_BIN}/cdfedit -# -# Note that `{CDF_BIN}' could also also be added to a user's path allowing -# the toolkit programs to be executed simply by specifying their names. -#----------------------------------------------------------------------------- - -export CDF_BASE= - -export CDF_INC=$CDF_BASE/include -export CDF_LIB=$CDF_BASE/lib -export CDF_BIN=$CDF_BASE/bin -export CDF_JAVA=$CDF_BASE/cdfjava -export CDF_HELP=$CDF_BASE/lib/cdf/help -export CDF_LEAPSECONDSTABLE=$CDF_BASE/CDFLeapSeconds.txt - -alias cdfedit=$CDF_BIN/cdfedit -alias cdfexport=$CDF_BIN/cdfexport -alias cdfconvert=$CDF_BIN/cdfconvert -alias cdfinquire=$CDF_BIN/cdfinquire -alias cdfstats=$CDF_BIN/cdfstats -alias cdfdump=$CDF_BIN/cdfdump -alias cdfirsdump=$CDF_BIN/cdfirsdump -alias cdfcompare=$CDF_BIN/cdfcompare -alias skeletontable=$CDF_BIN/skeletontable -alias skeletoncdf=$CDF_BIN/skeletoncdf -alias cdfdir=$CDF_BIN/cdfdir -alias cdfirsdump=$CDF_BIN/cdfirsdump -alias cdfmerge=$CDF_BIN/cdfmerge -alias cdfbrowse="$CDF_BIN/cdfedit -prompt -browse" -alias cdfvalidate=$CDF_BIN/cdfvalidate -alias cdfleapsecondsinfo=$CDF_BIN/cdfleapsecondsinfo -# The following statements are relevant only for Mac OS X -if [ "$OSTYPE" = "darwin" ] -then - alias cdf-to-netCDF=$CDF_BIN/cdf-to-netCDF - alias netCDF-to-cdf=$CDF_BIN/netCDF-to-cdf -fi diff --git a/cdf36_3-dist/src/definitions/definitions.C b/cdf36_3-dist/src/definitions/definitions.C deleted file mode 100644 index d91d95a..0000000 --- a/cdf36_3-dist/src/definitions/definitions.C +++ /dev/null @@ -1,57 +0,0 @@ -#------------------------------------------------------------------------------ -# -# NSSDC/CDF Definitions for using CDF. -# C-shell and `tcsh'. -# -# Version 1.2, 19-Mar-96, Hughes STX. -# -# Modification History: -# -# V1.0 14-Jun-95, J Love Original version. -# V1.1 18-Jul-95, J Love Added CDFexport. -# V1.2 19-Mar-96, J Love CDF V2.6. -# V1.3 05-Aug-08, M Liu CDF V3.3. -# V1.4 12-Apr-11, M Liu CDF V3.3.2 for adding leap seconds env. var. -# -#----------------------------------------------------------------------------- -# Before using this script file, change the definition of CDF_BASE for where -# CDF was installed on your machine (ie. the directory containing the `bin', -# `lib', and `include' directories). All CDF users can then use the command... -# -# $ source /bin/definitions.C -# -# ...to setup the necessary environment variables and aliases (where -# is the full directory path leading to where CDF was installed). Note that -# `/bin' could also be added to a user's path. -#----------------------------------------------------------------------------- - -setenv CDF_BASE - -setenv CDF_INC $CDF_BASE/include -setenv CDF_LIB $CDF_BASE/lib -setenv CDF_BIN $CDF_BASE/bin -setenv CDF_JAVA $CDF_BASE/cdfjava -setenv CDF_HELP $CDF_BASE/lib/cdf/help -setenv CDF_LEAPSECONDSTABLE $CDF_BASE/CDFLeapSeconds.txt - -alias cdfedit $CDF_BIN/cdfedit -alias cdfexport $CDF_BIN/cdfexport -alias cdfconvert $CDF_BIN/cdfconvert -alias cdfinquire $CDF_BIN/cdfinquire -alias cdfstats $CDF_BIN/cdfstats -alias cdfdump $CDF_BIN/cdfdump -alias cdfirsdump $CDF_BIN/cdfirsdump -alias cdfcompare $CDF_BIN/cdfcompare -alias skeletontable $CDF_BIN/skeletontable -alias skeletoncdf $CDF_BIN/skeletoncdf -alias cdfdir $CDF_BIN/cdfdir -alias cdfmerge $CDF_BIN/cdfmerge -alias cdfbrowse "$CDF_BIN/cdfedit -prompt -browse" -alias cdfvalidate $CDF_BIN/cdfvalidate -alias cdfleapsecondsinfo $CDF_BIN/cdfleapsecondsinfo -# The following statements are relevant only for Mac OS X -if ( "$OSTYPE" == "darwin" ) then - alias cdf-to-netCDF $CDF_BIN/cdf-to-netCDF - alias netCDF-to-cdf $CDF_BIN/netCDF-to-cdf -endif - diff --git a/cdf36_3-dist/src/definitions/definitions.K b/cdf36_3-dist/src/definitions/definitions.K deleted file mode 100644 index 419a7b8..0000000 --- a/cdf36_3-dist/src/definitions/definitions.K +++ /dev/null @@ -1,57 +0,0 @@ -#------------------------------------------------------------------------------ -# -# NSSDC/CDF Definitions for using CDF. -# Korn, Bash, and posixSHELL. -# -# Version 1.2, 19-Mar-96, Hughes STX. -# -# Modification History: -# -# V1.0 14-Jun-95, J Love Original version. -# V1.1 18-Jul-95, J Love Added CDFexport. -# V1.2 19-Mar-96, J Love CDF V2.6. -# V1.3 05-Aug-08, M Liu CDF V3.3. -# V1.4 12-Apr-11, M Liu CDF V3.3.2 for adding leap seconds env. var. -# -#----------------------------------------------------------------------------- -# Before using this script file, change the definition of CDF_BASE for where -# CDF was installed on your machine (ie. the directory containing the `bin', -# `lib', and `include' directories). All CDF users can then use the command... -# -# $ . /bin/definitions.K -# -# ...to setup the necessary environment variables and aliases (where -# is the full directory path leading to where CDF was installed). Note that -# `/bin' could also be added to a user's path. -#----------------------------------------------------------------------------- - -export CDF_BASE= - -export CDF_INC=$CDF_BASE/include -export CDF_LIB=$CDF_BASE/lib -export CDF_BIN=$CDF_BASE/bin -export CDF_JAVA=$CDF_BASE/cdfjava -export CDF_HELP=$CDF_BASE/lib/cdf/help -export CDF_LEAPSECONDSTABLE=$CDF_BASE/CDFLeapSeconds.txt - -alias cdfedit=$CDF_BIN/cdfedit -alias cdfexport=$CDF_BIN/cdfexport -alias cdfconvert=$CDF_BIN/cdfconvert -alias cdfinquire=$CDF_BIN/cdfinquire -alias cdfstats=$CDF_BIN/cdfstats -alias cdfdump=$CDF_BIN/cdfdump -alias cdfirsdump=$CDF_BIN/cdfirsdump -alias cdfcompare=$CDF_BIN/cdfcompare -alias skeletontable=$CDF_BIN/skeletontable -alias skeletoncdf=$CDF_BIN/skeletoncdf -alias cdfdir=$CDF_BIN/cdfdir -alias cdfmerge=$CDF_BIN/cdfmerge -alias cdfbrowse="$CDF_BIN/cdfedit -prompt -browse" -alias cdfvalidate=$CDF_BIN/cdfvalidate -alias cdfleapsecondsinfo=$CDF_BIN/cdfleapsecondsinfo -# The following statements are relevant only for Mac OS X -if [ "$OSTYPE" = "darwin" ] -then - alias cdf-to-netCDF=$CDF_BIN/cdf-to-netCDF - alias netCDF-to-cdf=$CDF_BIN/netCDF-to-cdf -fi diff --git a/cdf36_3-dist/src/help/cdf2skt.olh b/cdf36_3-dist/src/help/cdf2skt.olh deleted file mode 100644 index 2475f19..0000000 --- a/cdf36_3-dist/src/help/cdf2skt.olh +++ /dev/null @@ -1,368 +0,0 @@ -#****************************************************************************** -# Copyright 1996-2014 United States Government as represented by the -# Administrator of the National Aeronautics and Space Administration. -# All Rights Reserved. -#****************************************************************************** -#------------------------------------------------------------------------------ -# -# NSSDC/CDF SkeletonTable online help. -# -# Version 1.1c, 21-Nov-97, Hughes STX. -# -# Modification history: -# -# V1.0 ?, J Love Original version. -# V1.1 23-Sep-96, J Love CDF V2.6. -# V1.1a 7-Jan-97, J Love Fixed cache qualifier. -# V1.1b 21-Feb-97, J Love Removed RICE. -# V1.1c 21-Nov-97, J Love Windows NT/95. -# -#------------------------------------------------------------------------------ -#ifos mac win -SkeletonTable is used to create a skeleton table file from a CDF. The -parameters/qualifiers dialog box displayed when SkeletonTable is `executed' -contains the following controls. - -Edit fields for... - - CDF: The pathname of the CDF from which a skeleton table - will be created. At the end of this field a button - labeled "Select" is present. When selected, a - standard input file dialog is displayed from which - the CDF may be selected. - - Skeleton: The pathname of the skeleton table to be created. At - the end of this field a button labeled "Select" is - present. When selected, a standard output file dialog - is displayed in which the skeleton table pathname may - be specified. Don't specify an extension - `.skt' is - appended automatically. If this field is left blank, - the skeleton table name defaults to the name of the CDF - (with `.skt' appended) and is placed in the folder - containing the SkeletonTable executable. The "Output - to screen" check box also affects the destination of - the skeleton table. - - Cache sizes: The number of buffers to be used for the CDF's dotCDF - file, staging file, and compression scratch file. - This field, used only in the CDF access process during - the run, will not change the contents of the skeleton - table. Large number(s) will likely reduce physical I/Os - if variable data are involved. If this field is left - blank, default cache sizes chosen by the CDF library - are used. The cache sizes are specified with a - comma-separated list of pairs where - is the number of cache buffers and is - the type of file. The file 's are as follows: - `d' for the dotCDF file, `s' for the staging file, and - `c' for the compression scratch file. For example, - `200d,100s' specifies 200 cache buffers for the dotCDF - file and 100 cache buffers for the staging file. The - dotCDF file cache size can also be specified without - the `d' for compatibility with older CDF - releases (eg. `200,100s'). Note that not all of the - file types must be specified. Those not specified - will receive a default cache size. - - Variables: If the values for selected variables are to be - displayed, this field should contain a comma-separated - list of delimited variable names. See the `Selected - variables' radio button. - -Check boxes for... - - Output to screen: Whether or not the skeleton table is displayed on the - screen in the `SkeletonTable: standard output' window. - If not checked, the skeleton table is written to a - file. - - Use FORMAT: Whether or not the FORMAT attribute is used when - writing variable values (if the FORMAT attribute - exists and an entry exists for the variable). - - -0.0 to 0.0: Whether or not -0.0 is converted to 0.0 by the CDF - library when read from a CDF. - - Page output: If the skeleton table is being displayed on the screen, - whether or not the output is displayed one page (screen) - at a time. - - Report info's: Whether or not informational status codes from the CDF - library should be reported. - - Report warnings: Whether or not warning status codes from the CDF - library should be reported. - - Report errors: Whether or not error status codes from the CDF library - should be reported. - - Log progress: Whether or not progress messages are displayed. - - Display statistics: Whether or not caching statistics are displayed at the - end of each CDF. - -Radio buttons for... - - zMode: The zMode to be used for the CDF. - 0...zMode is disabled. - 1...zMode/1 should be used. The dimension - variances of the rVariables will be preserved. - 2...zMode/2 should be used. The dimensions of - rVariables having a variance of NOVARY (false) - are hidden. - - No values: Place no variable values in the skeleton table. - NRV values: Place only NRV variable values in the skeleton table. - RV values: Place only RV variable values in the skeleton table. - All values: Place all variable values in the skeleton table. - Selected values: Place the values of the variables named in the - `Variables' edit field in the skeleton table. - -Buttons for... - - Enter Causes SkeletonTable to create a skeleton table based - on the parameters/qualifiers specified. - - Help Causes this online help to be displayed. - -#ifos mac - Quit Causes SkeletonTable to terminate. (A skeleton table - is not created.) This button is only present the first - time the parameters/qualifiers dialog box is displayed. - -#endos - Cancel Causes the parameters/qualifiers dialog box to be - closed. (A skeleton table is not created.) -#ifos mac - This button is only present after the first time the - parameters/qualifiers dialog box is displayed. -#endos -#else -#ifos vms -Usage: $ SKELETONTABLE [/SKELETON=] [/[NO]NEG2POSFP0] - [/NONRV | /NRVTABLE | /VALUES=] - [/CACHE=()] [/[NO]FORMAT] [/[NO]SCREEN] - [/[NO]LOG] [/[NO]PAGE] [/[NO]STATISTICS] - [/REPORT=()] [/ZMODE=] [/ABOUT] - -#endos -#ifos unix -Usage: % skeletontable [-skeleton ] [-[no]neg2posfp0] - [-nonrv | -nrvtable | -values ] - [-cache ""] [-[no]format] [-[no]screen] - [-[no]log] [-[no]page] [-[no]statistics] - [-report ""] [-zmode ] [-about] - -#endos -#ifos dos -Usage: > skeletontable [-skeleton ] [-[no]neg2posfp0] - [-nonrv | -nrvtable | -values ] - [-cache ""] [-[no]format] [-[no]screen] - [-[no]log] [-[no]page] [-[no]statistics] - [-report ""] [-zmode ] [-about] - -#endos - -Purpose: SkeletonTable produces a skeleton table from a CDF. A - skeleton table is a text file which can be read by the - SkeletonCDF program to build a skeleton CDF. - -Parameter(s): - The pathname of the CDF from which the skeleton table - will be created. Do not enter an extension. - -#ifos vms -Qualifier(s): /SKELETON= - is the pathname of the skeleton table - to be created. (Do not enter an extension because ".SKT" - is appended automatically). If not specified, the - skeleton table is named .SKT in the default - directory (where is the name portion of - ). -#else -Qualifier(s): -skeleton - is the pathname of the skeleton table - to be created. (Do not enter an extension because ".skt" - is appended automatically). If not specified, the - skeleton table is named .skt in the current - directory (where is the name portion of - ). -#endos - -#ifos vms - /VALUES= | /NONRV | /NRVTABLE - Only one of these qualifiers may be specified. /NONRV and - /NRVTABLE are not longer necessary but are supported for - compatibility with previous CDF distributions. - /NONRV - Ignore all NRV data values. This is equivalent to - using `/VALUES=NONE'. - /NRVTABLE - Put NRV data values in the skeleton table. This is - equivalent to using `/VALUES=NRV'. - /VALUES= - Where specifies which variable values are to - be put in the skeleton table. may be one of - the following... - NONE........No variable values. - NRV.........NRV variable values. - RV..........RV variable values. - ALL.........All variable values. - .....Named variables. is a comma- - separated list of delimited variable - names enclosed in double quote marks. - Do not use double quote marks to delimit - a variable name. -#else - -values | -nonrv | -nrvtable - Only one of these qualifiers may be specified. `-nonrv' and - `-nrvtable' are not longer necessary but are supported for - compatibility with previous CDF distributions. - -nonrv - Ignore all NRV data values. This is equivalent to - using `-values none'. - -nrvtable - Put NRV data values in the skeleton table. This is - equivalent to using `-value nrv'. - -values - Where specifies which variable values are to - be put in the skeleton table. may be one of - the following... - `none'......No variable values. - `nrv'.......NRV variable values. - `rv'........RV variable values. - `all'.......All variable values. - .....Named variables. is a comma- - separated list of delimited variable - names enclosed by double quote marks. - Do not use double quote marks to delimit - a variable name. -#endos - -#ifos vms - /[NO]LOG -#else - -[no]log -#endos - Specifies whether or not messages are displayed as the - program executes. - -#ifos vms - /ZMODE= -#else - -zmode -#endos - Specifies which zMode should be used. may be one - of the following... - - 0 Indicates that zMode is disabled. - 1 Indicates that zMode/1 should be used (the - dimension variances of rVariables will be - preserved). - 2 Indicates that zMode/2 should be used (the - dimensions of rVariables having a variance - of NOVARY (false) are hidden. - -#ifos vms - /[NO]FORMAT -#else - -[no]format -#endos - Specifies whether or not the FORMAT attribute is used - when writing variable values (if the FORMAT attribute - exists and an entry exists for the variable). - -#ifos vms - /[NO]NEG2POSFP0 -#else - -[no]neg2posfp0 -#endos - Specifies whether or not -0.0 is converted to 0.0 by the CDF - library when read from a CDF. -0.0 is an illegal floating - point value on VAXes and DEC Alphas running OpenVMS. - -#ifos vms - /REPORT=() -#else - -report "" -#endos - Specifies the types of return status codes from the CDF - library which should be reported/displayed. is - a comma-separated list of zero or more of the following - symbols: `errors', `warnings', or `informationals'. Note - that these symbols can be truncated (eg. `e', `w', and `i'). - -#ifos vms - /CACHE=() -#else - -cache "" -#endos - The number of 512-byte buffers to be used for the CDF's - dotCDF file, staging file, and compression scratch file. - If this qualifier is absent, default cache sizes chosen by - the CDF library are used. The cache sizes are specified - with a comma-separated list of pairs where - is the number of cache buffers and is the - type of file. The file 's are as follows: `d' for - the dotCDF file, `s' for the staging file, and `c' for the - compression scratch file. For example, `200d,100s' - specifies 200 cache buffers for the dotCDF file and 100 - cache buffers for the staging file. The dotCDF file cache - size can also be specified without the `d' for - compatibility with older CDF releases (eg. `200,100s'). - Note that not all of the file types must be specified. - Those not specified will receive a default cache size. - -#ifos vms - /[NO]STATISTICS -#else - -[no]statistics -#endos - Specifies whether or not caching statistics are displayed - at the end of each CDF. - -#ifos vms - /[NO]SCREEN -#else - -[no]screen -#endos - Specifies whether or not the skeleton table is displayed - on the terminal screen (written to the "standard output"). - If not, the skeleton table is written to a file. - -#ifos vms - /[NO]PAGE -#else - -[no]page -#endos - If the skeleton table is being displayed on the terminal - screen, specifies whether or not the output is displayed - one page (screen) at a time. - -#ifos vms - /ABOUT -#else - -about -#endos - Shows the library version that was used to create this tool - program. - -#ifos vms -Example(s): $ SKELETONTABLE/NOLOG FGGE3B - $ SKELETONTABLE/SKELETON=FGGE3BX/REPORT=(ERRORS) FGGE3B - $ SKELETONTABLE/SKELETON=FGGE3BX/NONRV FGGE3B - $ SKELETONTABLE/VALUES="'Var1','Var2'" -#endos -#ifos unix -Example(s): % skeletontable -nolog fgge3b - % skeletontable -skeleton fgge3bx -report "errors" ../fgge3b - % skeletontable -skeleton ~user/cdf/fgge3b -nonrv fgge3b - % skeletontable -values "'Var1','Var2'" -#endos -#ifos dos -Example(s): > skeletontable -nolog fgge3b - > skeletontable -skeleton fgge3bx -report "errors" a:\fgge3b - > skeletontable -skeleton ..\fgge3b -nonrv fgge3b - > skeletontable -values "'Var1','Var2'" -#endos -#endos diff --git a/cdf36_3-dist/src/help/cdf2sktj.olh b/cdf36_3-dist/src/help/cdf2sktj.olh deleted file mode 100644 index 2c46415..0000000 --- a/cdf36_3-dist/src/help/cdf2sktj.olh +++ /dev/null @@ -1,135 +0,0 @@ -#****************************************************************************** -# Copyright 1996-2014 United States Government as represented by the -# Administrator of the National Aeronautics and Space Administration. -# All Rights Reserved. -#****************************************************************************** -#------------------------------------------------------------------------------ -# -# NSSDC/CDF SkeletonTable online help. -# -# Version 1.1b, 21-Feb-97, Hughes STX. -# -# Modification history: -# -# V1.0 ?, J Love Original version. -# V1.1 23-Sep-96, J Love CDF V2.6. -# V1.1a 7-Jan-97, J Love Fixed cache qualifier. -# V1.1b 21-Feb-97, J Love Removed RICE. -# -#------------------------------------------------------------------------------ - -SkeletonTable is used to create a skeleton table file from a CDF. The -parameters/qualifiers dialog box displayed when SkeletonTable is `executed' -contains the following controls. - -Edit fields for... - - CDF: The file name of the CDF from which a skeleton table - will be created. At the end of this field a button - labeled "Select 1" is present. When selected, a - standard input file dialog is displayed from which - the CDF may be selected. Once a CDF is selected, its - extension is automatically removed if it exists before - its full file name is displayed. - - Skeleton: The file name of the skeleton table to be created. At - the end of this field a button labeled "Select 2" is - present. When selected, a standard output file dialog - is displayed in which the skeleton table file name may - be specified. Don't specify an extension - `.skt' is - appended automatically. If this field is left blank, - the skeleton table name defaults to the name of the CDF - (with `.skt' appended) and is placed in the folder - containing the SkeletonTable executable. The "Output - to screen" check box also affects the destination of - the skeleton table. - - Cache sizes: The number of 512-byte buffers to be used for the - CDF's dotCDF file, staging file, and compression - scratch file. If this field is left blank, default - cache sizes chosen by the CDF library are used. - The cache sizes are specified with a comma-separated - list of pairs where is the - number of cache buffers and is the type of - file. The file 's are as follows: `d' for the - dotCDF file, `s' for the staging file, and `c' for - the compression scratch file. For example, `200d,100s' - specifies 200 cache buffers for the dotCDF file and - 100 cache buffers for the staging file. The dotCDF - file cache size can also be specified without the `d' - for compatibility with older CDF releases (eg. - `200,100s'). Note that not all of the file types must - be specified. Those not specified will receive a - default cache size. - - Variables: If the values for selected variables are to be - displayed, this field should contain a comma-separated - list of delimited variable names. See the `Values' - radio button. - -Check boxes for... - - Output to screen: Whether or not the skeleton table is displayed on the - screen in the `SkeletonTable: standard output' window. - If not checked, the skeleton table is written to a - file. - - Use FORMAT: Whether or not the FORMAT attribute is used when - writing variable values (if the FORMAT attribute - exists and an entry exists for the variable). - - -0.0 to 0.0: Whether or not -0.0 is converted to 0.0 by the CDF - library when read from a CDF. - - Page output: If the skeleton table is being displayed on the screen, - whether or not the output is displayed one page (screen) - at a time. - - Report info's: Whether or not informational status codes from the CDF - library should be reported. - - Report warnings: Whether or not warning status codes from the CDF - library should be reported. - - Report errors: Whether or not error status codes from the CDF library - should be reported. - - Log progress: Whether or not progress messages are displayed. - - Display statistics: Whether or not caching statistics are displayed at the - end of each CDF. - - About: Display the library version that is used to create the - tool. - -Radio buttons for... - - zMode: The zMode to be used for the CDF. - 0...zMode is disabled. - 1...zMode/1 should be used. The dimension - variances of the rVariables will be preserved. - 2...zMode/2 should be used. The dimensions of - rVariables having a variance of NOVARY (false) - are hidden. - - Values: Data values to be extracted from the CDF. - - None: Place no variable values in the skeleton table. - NRV: Place only NRV variable values in the skeleton table. - RV: Place only RV variable values in the skeleton table. - All: Place all variable values in the skeleton table. - Selected: Place the values of the variables named in the - `Variables' edit field in the skeleton table. - -Buttons for... - - Enter Causes SkeletonTable to create a skeleton table based - on the parameters/qualifiers specified. - - Help Causes this online help to be displayed. - - Quit Causes SkeletonTable to terminate. (A skeleton table - is not created.) This button is only present the first - time the parameters/qualifiers dialog box is displayed. - - diff --git a/cdf36_3-dist/src/help/cdfbrow.ilh b/cdf36_3-dist/src/help/cdfbrow.ilh deleted file mode 100644 index aa18690..0000000 --- a/cdf36_3-dist/src/help/cdfbrow.ilh +++ /dev/null @@ -1,822 +0,0 @@ -#****************************************************************************** -# Copyright 1996-2014 United States Government as represented by the -# Administrator of the National Aeronautics and Space Administration. -# All Rights Reserved. -#****************************************************************************** -#------------------------------------------------------------------------------ -# -# NSSDC/CDF CDFbrowse inline help (CDFedit in browse mode). -# -# Version 1.0a, 19-Dec-96, Hughes STX. -# -# Modification history: -# -# V1.0 2-Apr-96, J Love Original version. -# V1.0a 19-Dec-96, J Love Fixed for "text mode" browsing of attributes. -# -#------------------------------------------------------------------------------ - -#section 0 -#item -#title "CDFs Menu" -The label of the menu displays the name of the directory and/or -wildcard specification of the CDFs listed. - -The header section of the menu displays the number of CDFs which -match the directory and/or wildcard specification. - -The item section of the menu displays a list of the CDFs which -match the directory and/or wildcard specification. One of the CDFs -is highlighted. - -The trailer section of the menu displays the available functions... - - Select: Selects the currently highlighted CDF for browsing. - - Exit: Exits to the "CDF(s) Specification Prompt" if the `prompt' - qualifier was used at the command line. Exists the program - if the `prompt' qualifier was not used. - - Info: Displays compression information about the currently - highlighted CDF. - - Help: Displays this online help. - -Most item windows also support the use of the following keys. They -are generally not shown in the trailer section. - - ________ Moves down one screen. The current item remains in - (approximately) the same location. - - ________ Moves up one screen. The current item remains in - (approximately) the same location. -#endsection - -#section 1 -#item -#title "CDF Menu" -The label of the window displays the name of the CDF currently being browsed. - -The header section of the menu displays general information about the -CDF. This includes the format, encoding, majority, number of variables -(rVariables/zVariables), number of attributes (gAttributes/vAttributes), -compression, and the version.release.increment of the creating CDF library. - -The item section of the menu displays the items which may be selected. - -The trailer section of the menu displays the available functions... - - Select: Selects the currently highlighted item. - - The following items may be selected... - - Displays the "rVariables Menu". - From that menu rVariables may be - browsed. - Displays the "zVariables Menu". - From that menu zVariables may be - browsed. - Displays the "gAttributes Menu". - From that menu gAttributes and - their gEntries may be browsed. - Displays the "vAttributes Menu". - From that menu vAttributes and - their rEntries/zEntries may be - browsed. - - Exit: Closes this CDF and exits to the "CDFs Menu" if a - directory/wildcard specification had been specified. - Otherwise, exists to the "CDF(s) Specification Prompt" - if the `prompt' qualifier had been specified on the - command or exists the program if the `prompt' qualifier - had not been used. - - Help: Displays this online help. - -Most item windows also support the use of the following keys. They -are generally not shown in the trailer section. - - ________ Moves down one screen. The current item remains in - (approximately) the same location. - - ________ Moves up one screen. The current item remains in - (approximately) the same location. -#endsection - -#section 2 -#item -#title "gAttributes Menu" -The label of the menu displays the name of the CDF currently being -browsed. - -The header section of the menu displays the number of gAttributes -and headers for the columns of items. - -The item section of the menu displays information about each -gAttribute and its entries. For each gAttribute this includes, -from left to right, the gAttribute name, the first gEntry number -(if a gEntry exists), the gEntry data type/number of elements, -and the gEntry value. If additional gEntries exist they are -displayed one per line (the gAttribute name is not repeated). -Note that gEntry numbers do not have to begin at 1 (one) and do -not have to be contiguous. One of these items will be highlighted -(making it the current item). - -The trailer section of the menu displays the available functions... - - Select: A window containing the full value of the currently - highlighted item is displayed. - - The following items may be selected... - - A window containing the full - gAttribute name is displayed. - - A window containing the full - value is displayed. - - Exit: Exits the menu and redisplays the "CDF Menu". - - Help: Displays this online help. - -Most item windows also support the use of the following keys. They -are generally not shown in the trailer section. - - ________ Moves down one screen. The current item remains in - (approximately) the same location. - - ________ Moves up one screen. The current item remains in - (approximately) the same location. -#endsection - -#section 3 -#item -#title "vAttributes Menu" -The label of the menu displays the name of the CDF currently being -browsed. - -The header section of the menu displays the number of vAttributes -and headers for the columns of items. - -The item section of the menu displays information about each -vAttribute and its entries. For each vAttribute this includes, -from left to right, the vAttribute name, the name of the variable -corresponding to the first entry (if an entry exists), the entry -data type/number of elements, and the entry value. If additional -entries exist they are displayed one per line (the vAttribute name -is not repeated). Entries corresponding to the rVariables (rEntries) -are listed before the entries for the zVariables (zEntries). Note that -an entry does not have to exist for each variable in the CDF. One -of these items will be highlighted (making it the current item). - -The trailer section of the menu displays the available functions... - - Select: A window containing the full value of the currently - highlighted item is displayed. - - The following items may be selected... - - A window containing the full - vAttribute name is displayed. - - A window containing the full - variable name is displayed. - - A window containing the full - value is displayed. - - Exit: Exits the menu and redisplays the "CDF Menu". - - Help: Displays this online help. - -Most item windows also support the use of the following keys. They -are generally not shown in the trailer section. - - ________ Moves down one screen. The current item remains in - (approximately) the same location. - - ________ Moves up one screen. The current item remains in - (approximately) the same location. -#endsection - -#section 4 -#item -#title "Variable Entries Menu" -The label of the menu displays the name of the variable for whom -the entries exist. - -The header section of the menu displays the number of vAttributes -and headers for the columns of items. - -The item section of the menu displays information about each -vAttribute and the corresponding entry (if it exists). For -each vAttribute this includes, from left to right, the vAttribute -name, the entry data type/number of elements, and the entry -value. Note that an entry does not have to exist for each -vAttribute in the CDF (the vAttribute name is shown followed by -two blank fields). One of these items will be highlighted (making -it the current item). - -The trailer section of the menu displays the available functions... - - Select: A window containing the full value of the currently - highlighted item is displayed. - - The following items may be selected... - - A window containing the full - vAttribute name is displayed. - - A window containing the full - value is displayed. - - Next variable: Displays the vAttribute entries for the [r|z]Variable - which is (numerically) next. - - Exit: Exits the menu and redisplays the "[r|z]Variables - Menu". - - Help: Displays this online help. - -Most item windows also support the use of the following keys. They -are generally not shown in the trailer section. - - ________ Moves down one screen. The current item remains in - (approximately) the same location. - - ________ Moves up one screen. The current item remains in - (approximately) the same location. -#endsection - -#section 5 -#item -#title "zVariables Menu" -The label of the menu displays the name of the CDF currently being -browsed. - -The header section of the menu displays the number of zVariables, -the maximum record number used among all of the zVariables, and -headers for the columns of items. - -The item section of the menu displays information about each -zVariable. For each zVariable this includes, from left to right, -the zVariable's name, data specification (data type and number -of elements), dimensionality (number of dimensions and their sizes), -record/dimension variances, and labels allowing the selection of -zEntries, values, and additional properties for browsing. One of -these items will be highlighted (making it the current item). - -The trailer section of the menu displays the available functions... - - Select: A new window or a window containing the full value of - the currently highlighted item is displayed. - - The following items may be selected... - - A window containing the full - zVariable name is displayed. - - The following windows may be selected... - - A window will be displayed allowing - the associated zEntries to be browsed. - - A window will be displayed allowing - the associated zVariable values to be - browsed. - - A window will be displayed allowing - additional properties of the zVariable - to be browsed. - - Exit: Exits the menu and redisplays the "CDF Menu". - - Help: Displays this online help. - -Most item windows also support the use of the following keys. They -are generally not shown in the trailer section. - - ________ Moves down one screen. The current item remains in - (approximately) the same location. - - ________ Moves up one screen. The current item remains in - (approximately) the same location. -#endsection - -#section 6 -#item -#title "rVariables Menu" -The label of the menu displays the name of the CDF currently being -browsed. - -The header section of the menu displays the number of rVariables, -the rVariable dimensionality, the maximum record number used among -all of the rVariables, and headers for the columns of items. - -The item section of the menu displays information about each -rVariable. For each rVariable this includes, from left to right, -the rVariable's name, data specification (data type and number -of elements), record/dimension variances, and labels allowing -the selection of rEntries, values, and additional properties for -browsing. One of these items will be highlighted (making it the -current item). - -The trailer section of the menu displays the available functions... - - Select: A new window or a window containing the full value of - the currently highlighted item is displayed. - - The following items may be selected... - - A window containing the full - rVariable name is displayed. - - The following windows may be selected... - - A window will be displayed allowing - the associated rEntries to be browsed. - - A window will be displayed allowing - the associated rVariable values to - be browsed. - - A window will be displayed allowing - additional properties of the rVariable - to be browsed. - - Exit: Exits the menu and redisplays the "CDF Menu". - - Help: Displays this online help. - -Most item windows also support the use of the following keys. They -are generally not shown in the trailer section. - - ________ Moves down one screen. The current item remains in - (approximately) the same location. - - ________ Moves up one screen. The current item remains in - (approximately) the same location. -#endsection - -#section 12 -#prompt -#title "CDF(s) Specification Prompt" -The header section displays the syntax to be used when entering the CDF(s) -specification. - -The prompt field is where the specification is displayed/entered. (delimiters -should not be used). The allowed specifications are essentially the same -as those allowed when requesting a directory listing from the host operating -system (eg. absolute/relative directory paths, wildcard characters, etc.). - -The trailer section displays the available functions... - - Enter: If a directory and/or wildcard specification has been entered, - the "CDFs Menu" is displayed showing the selected CDFs. If a - CDF was specified it will be opened and the "CDF Menu" displayed - (if the CDF exists). - - Exit: Exits the program. - - Help: Displays this online help. - -Most prompt windows also support the use of the following keys. They -are generally not shown in the trailer section. - - ________ Moves the cursor to the start of the specification. - - ________ Moves the cursor to the end of the specification. - - ________ Toggles between insert mode and overstrike mode. Most - prompt windows are initially set to insert mode. -#endsection - -#section 18 -#prompt -#title "Full Entry Value Display" -The label displays the entry for which the full value is being displayed. - -The prompt field (although you can't actually enter a new value) is where -the full attribute entry value is displayed. For character string values a -character not contained in the string itself will be used as a delimiter. -For non-character string values, more than one element may exist (separated -by commas). - -The trailer section displays the available functions... - - Exit: Exits the window. - - Help: Displays this online help. - -Most prompt windows also support the use of the following keys. They -are generally not shown in the trailer section. - - ________ Moves the cursor to the start of the value. - - ________ Moves the cursor to the end of the value. - - ________ Toggles between insert mode and overstrike mode (although - this doesn't really apply here). Most prompt windows are - initially set to insert mode. -#endsection - -#section 23 -#prompt -#title "Record Number Prompt" -The prompt field is where the record number is displayed/entered. - -The trailer section displays the available functions... - - Enter: Moves directly to the record number currently displayed in the - prompt field [dimension indices are unchanged]. The variable - value is updated for the new record number/indices combination. - - Exit: Exits without moving to a new record number. - - Help: Displays this online help. -#endsection - -#section 24 -#prompt -#title "Dimension Index Prompt" -The prompt field is where the dimension index is displayed/entered. - -The trailer section displays the available functions... - - Enter: Moves directly to the dimension index currently displayed in - the prompt field [the record number is unchanged]. The variable - value is updated for the new record number/indices combination. - - Exit: Exits without moving to a new dimension index. - - Help: Displays this online help. -#endsection - -#section 25 -#prompt -#title "Full Variable Value Display" -The prompt field (although you can't actually enter a new value) is where -the full variable value is displayed. For character string values a character -not contained in the string itself will be used as a delimiter. - -The trailer section displays the available functions... - - Exit: Exits the window. - - Help: Displays this online help. - -Most prompt windows also support the use of the following keys. They -are generally not shown in the trailer section. - - ________ Moves the cursor to the start of the value. - - ________ Moves the cursor to the end of the value. - - ________ Toggles between insert mode and overstrike mode (although - this doesn't really apply here). Most prompt windows are - initially set to insert mode. -#endsection - -#section 26 -#item -#title "Variable Values Menu" -The label displays the name of the variable. - -The item section displays a record/indices combination along with the -associated value for the variable. The syntax is... - - :[,,...,] = - -False record/dimension variances cause an asterisk (*) to be displayed instead -of the record/index number. The items consist of the record number, index -values, and the variable value. One of these items will be highlighted. - -If the value being displayed is in a virtual record, will also -be displayed at the far right of the item section. Virtual records are those -records beyond the last record actually (physically) written for a variable. - -The trailer section displays the available functions... - - Select: Selects the currently highlighted item for modification. - The following items may be modified... - - Causes a prompt window to be - display for the new record number. - - Causes a prompt window to be - displayed for the new index value. - - Next Item: Highlights the item to the right of the currently - highlighted item (wrapping to the beginning of the items - if necessary). - - Prev Item: Highlights the item to the left of the currently - highlighted item (wrapping to the end of the items if - necessary). - - Increment: Increments by one (1) the currently highlighted item - (illegal on the value item). If a dimension index - equal to the size of that dimension is incremented it - will be wrapped to one (1). - - Decrement: Decrements by one (1) the currently highlighted item - (illegal on the value item). If a record number of - one (1) is decremented it will be wrapped to the maximum - record written. If a record number greater than the - maximum record written is decremented it will be set to - the maximum record written. If a dimension index of one - (1) is decremented it will be wrapped to the size of that - dimension. - - Next variable: Displays the value for the [r|z]Variable which is - (numerically) next. - - Exit: Exits this menu and redisplays the [r|z]Variables Menu. - - Help: Displays this online help. -#endsection - -#section 27 -#item -#title "Variable More Menu" -The label displays the name of the variable. - -The header section displays additional information about the variable (not -all of which will fit on the [r|z]Variables Menu). This includes (from left -to right, top to bottom) the data specification (data type and number of -elements), dimensionality, number/maximum records written, variances, -blocking factor, number/maximum records allocated, sparseness, compression, -pad value, and indexing (number of index records, entries, and levels). - -The item section displays the items which may be selected. One of the items -will be highlighted. - -The trailer section displays the available functions... - - Select: Selects the currently highlighted item. The following - items may be selected... - - Causes a window to be displayed - containing the full pad value. - - Next variable: Displays the `more' information for the [r|z]Variable - which is (numerically) next. - - Exit: Exits this menu and redisplays the [r|z]Variables Menu. - - Help: Displays this online help. -#endsection - -#section 28 -#prompt -#title "Full Pad Value Display" -The prompt field (although you can't actually enter a new pad value) is -where the pad value is displayed. If the variable's data type is character, -the pad value will be delimited with a character not in the pad value itself. - -The trailer section displays the available functions... - - Exit: Exits the window. - - Help: Displays this online help. - -Most prompt windows also support the use of the following keys. They -are generally not shown in the trailer section. - - ________ Moves the cursor to the start of the pad value. - - ________ Moves the cursor to the end of the pad value. - - ________ Toggles between insert mode and overstrike mode (although - this doesn't really apply here). Most prompt windows are - initially set to insert mode. -#endsection - -#section 39 -#item -#title "gAttributes Menu" -The label of the menu displays the name of the CDF currently being -browsed. - -The header section of the menu displays the number of gAttributes -and headers for the columns of items. - -The item section of the menu displays the names of the gAttributes -(one per line) with each followed by fields labeled `' -and `'. One of these items will be highlighted -(making it the current item). - -The trailer section of the menu displays the available functions... - - Select: A new window or a window containing the full value - of the currently highlighted item is displayed. - - The following items may be selected... - - A window containing the full - gAttribute name is displayed. - - A window will be displayed - allowing the gAttribute's - gEntries to be browsed. - - A window will be displayed - allowing the gAttribute's - gEntries to be browsed as a - group of text (if each gEntry - has a character data type). - - Exit: Exits the menu and redisplays the "CDF Menu". - - Help: Displays this online help. - -Most item windows also support the use of the following keys. They -are generally not shown in the trailer section. - - ________ Moves down one screen. The current item remains in - (approximately) the same location. - - ________ Moves up one screen. The current item remains in - (approximately) the same location. -#endsection - -#section 40 -#item -#title "vAttributes Menu" -The label of the menu displays the name of the CDF currently being -browsed. - -The header section of the menu displays the number of vAttributes -and headers for the columns of items. - -The item section of the menu displays the names of the vAttributes -(one per line) with each followed by fields labeled `' -and `'. One of these items will be highlighted -(making it the current item). - -The trailer section of the menu displays the available functions... - - Select: A new window or a window containing the full value - of the currently highlighted item is displayed. - - The following items may be selected... - - A window containing the full - vAttribute name is displayed. - - A window will be displayed - allowing the vAttribute's - entries to be browsed. - - This is not yet supported for - vAttributes. - - Exit: Exits the menu and redisplays the "CDF Menu". - - Help: Displays this online help. - -Most item windows also support the use of the following keys. They -are generally not shown in the trailer section. - - ________ Moves down one screen. The current item remains in - (approximately) the same location. - - ________ Moves up one screen. The current item remains in - (approximately) the same location. -#endsection - -#section 41 -#item -#title "gAttribute Entries Menu" -The label of the menu displays the name of the gAttribute currently -being browsed. - -The header section of the menu displays the number of gEntries for -the gAttribute and headers for the columns of items. - -The item section of the menu displays information about each gEntry -(one per line). For each gEntry this includes, from left to right, -the gEntry number, the gEntry's data type/number of elements, and the -gEntry's value. One of these items will be highlighted (making it -the current item). - -The trailer section of the menu displays the available functions... - - Select: A window containing the full value of the - currently highlighted item is displayed. - - The following items may be selected... - - A window containing the full - gEntry value is displayed. - - Next attribute: Displays the gEntries for the gAttribute which is - (numerically) next. - - Exit: Exits the menu and redisplays the "gAttributes Menu". - - Help: Displays this online help. - -Most item windows also support the use of the following keys. They -are generally not shown in the trailer section. - - ________ Moves down one screen. The current item remains in - (approximately) the same location. - - ________ Moves up one screen. The current item remains in - (approximately) the same location. -#endsection - -#section 42 -#item -#title "vAttribute Entries Menu" -The label of the menu displays the name of the vAttribute currently -being browsed. - -The header section of the menu displays the number of rEntries and -zEntries for the vAttribute and headers for the columns of items. - -The item section of the menu displays information about each entry -(one per line). For each entry this includes, from left to right, -the variable name corresponding to the entry, the entry's data -type/number of elements, and the entry's value. If there is not -a corresponding variable for an entry, then the type of entry and its -number is displayed instead of the variable name. One of these items -will be highlighted (making it the current item). - -The trailer section of the menu displays the available functions... - - Select: A window containing the full value of the - currently highlighted item is displayed. - - The following items may be selected... - - A window containing the full - variable name is displayed. - - A window containing the full - entry value is displayed. - - Next attribute: Displays the entries for the vAttribute which is - (numerically) next. - - Exit: Exits the menu and redisplays the "vAttributes Menu". - - Help: Displays this online help. - -Most item windows also support the use of the following keys. They -are generally not shown in the trailer section. - - ________ Moves down one screen. The current item remains in - (approximately) the same location. - - ________ Moves up one screen. The current item remains in - (approximately) the same location. -#endsection - -#section 46 -#edit -#title "TextBrowse gEntries Menu" -The label displays the name of the gAttribute whose gEntries are being -browsed. - -The edit section of the menu contains the current gEntries for the -gAttribute with one per line. Missing gEntries are indicated by a blank -line. If a gEntry has too many characters to fit in the window it is -truncated (on the window - not in the CDF). Note that if more lines -(gEntries) exist than can be displayed in the window they may be scrolled -into view. - -The trailer section of the menu displays the available functions... - - Exit: Exits the window. - - Help: Displays this online help. - -Most edit windows also support the use of the following keys. They -are generally not shown in the trailer section. - - ________ Moves down one screen. The cursor remains in (approximately) - the same location. - - ________ Moves up one screen. The cursor remains in (approximately) the - same location. -#endsection - -#section 47 -#edit -#title "Command Line Arguments" -You are executing CDFedit in a browse-only mode. The available command -line parameters, qualifiers, and options may be viewed by executing CDFedit -without any arguments... -#ifos vms - - $ CDFEDIT - -#endos -#ifos unix - - % cdfedit - -#endos -#endsection diff --git a/cdf36_3-dist/src/help/cdfcmp.olh b/cdf36_3-dist/src/help/cdfcmp.olh deleted file mode 100644 index f98f4da..0000000 --- a/cdf36_3-dist/src/help/cdfcmp.olh +++ /dev/null @@ -1,419 +0,0 @@ -#****************************************************************************** -# Copyright 1996-2014 United States Government as represented by the -# Administrator of the National Aeronautics and Space Administration. -# All Rights Reserved. -#****************************************************************************** -#------------------------------------------------------------------------------ -# -# NSSDC/CDF CDFcompare online help. -# -# Version 1.1c, 21-Nov-97, Hughes STX. -# -# Modification history: -# -# V1.0 ?, J Love Original version. -# V1.1 23-Sep-96, J Love CDF V2.6. -# V1.1a 7-Jan-97, J Love Fixed cache qualifier. -# V1.1b 21-Feb-97, J Love Removed RICE. -# V1.1c 21-Nov-97, J Love Windows NT/95. -# V1.2 18-Jun-02, M Liu Added tolerance information. -# -#------------------------------------------------------------------------------ -#ifos mac win -CDFcompare displays the differences between two CDFs. More than one pair of -CDFs may be compared. The parameters/qualifiers dialog box displayed when -CDFcompare is `executed' contains the following controls. - -Edit fields for... - - CDF1: The pathname of the first CDF specification. - CDF2: The pathname of the second CDF specification. - The two CDF specifications to be compared. At the - end of each field a button labeled "Select" is - present. When selected, a standard input file - dialog is displayed from which a single CDF may be - selected. Note that folders/wildcard specifications - may also be specified in these fields. (Wildcards - are allowed in CDF names but not folder names). - - Cache sizes: The number of 512-byte buffers to be used for the - CDF's dotCDF file, staging file, and compression - scratch file. If this field is left blank, default - cache sizes chosen by the CDF library are used. - The cache sizes are specified with a comma-separated - list of pairs where is the - number of cache buffers and is the type of - file. The file 's are as follows: `d' for the - dotCDF file, `s' for the staging file, and `c' for - the compression scratch file. For example, `200d,100s' - specifies 200 cache buffers for the dotCDF file and - 100 cache buffers for the staging file. The dotCDF - file cache size can also be specified without the `d' - for compatibility with older CDF releases (eg. - `200,100s'). Note that not all of the file types must - be specified. Those not specified will receive a - default cache size. - -Check boxes for... - - Page output: Whether or not the output is displayed one page (screen) - at a time. - - Compare attributes: Whether or not attributes are to be compared. - - Compare variables: Whether or not variables are to be compared. - - Compare numbers: Whether or not numbering differences of attributes and - variables should be displayed. The - - Compare etc.: Whether or not differences which are transparent to an - application are to be displayed (eg. encoding, format, - creation library). - - -0.0 to 0.0: Whether or not -0.0 is converted to 0.0 by the CDF - library when read from a CDF. - - Report info's: Whether or not informational status codes from the CDF - library should be reported. - - Report warnings: Whether or not warning status codes from the CDF library - should be reported. - - Report errors: Whether or not error status codes from the CDF library - should be reported. - - Log progress: Whether or not progress messages are displayed. - - Display percentages: Whether or not the percentage of a variable's values - compared is displayed during the comparison of that - variable. Progress message logging must also be - enabled. - - Display locations: Whether or not the locations of variable value - differences are displayed. The locations are displayed - in the form... - :[,,...,] - - Display values: Whether or not the values are displayed when a - difference is detected (between attribute entries - and variable values). Note that for variable values - to be displayed, the display of the locations of the - differences must also be enabled (see the "Display - locations" check box). - - Display statistics: Whether or not caching statistics are displayed at the - end of each comparison of two CDFs. - -Radio buttons for... - - zMode1: The zMode to be used for the first CDF specification. - zMode2: The zMode to be used for the second CDF specification. - 0...zMode is disabled. - 1...zMode/1 should be used. The dimension - variances of the rVariables will be preserved. - 2...zMode/2 should be used. The dimensions of - rVariables having a variance of NOVARY (false) - are hidden. - -Buttons for... - - Enter Causes CDFcompare to compare CDFs based on the - parameters/qualifiers specified. - - Help Causes this online help to be displayed. - -#ifos mac - Quit Causes CDFcompare to terminate. (No CDFs are - compared.) This button is only present the first - time the parameters/qualifiers dialog box is - displayed. - -#endos - Cancel Causes the parameters/qualifiers dialog box to - be closed. (No CDFs are compared.) -#ifos mac - This button is only present after the first time the - parameters/qualifiers dialog box is displayed. -#endos -#else -#ifos vms -Usage: $ CDFCOMPARE [/[NO]NUMBER] [/[NO]PERCENT] [/[NO]ETC] - [/[NO]ATTR] [/[NO]VAR] [/[NO]LOG] [/[NO]PAGE] - [/REPORT=()] [/ZMODES=(,)] - [/[NO]LOCATION] [/CACHE=()] [/[NO]VALUE] - [/[NO]FORMAT] [/[NO]STATISTICS] [/[NO]NEG2POSFP0] - [/TOLERANCE=(,)] [/ABOUT] - -#endos -#ifos unix -Usage: % cdfcompare [-[no]number] [-[no]percent] [-[no]etc] - [-[no]attr] [-[no]var] [-[no]log] [-[no]page] - [-zmodes ","] [-report ""] - [-[no]location] [-cache ""] [-[no]value] - [-[no]format] [-[no]statistics] [-[no]neg2posfp0] - [-tolerance ","] [-about] - -#endos -#ifos dos -Usage: > cdfcompare [-[no]number] [-[no]percent] [-[no]etc] - [-[no]attr] [-[no]var] [-[no]log] [-[no]page] - [-zmodes ","] [-report ""] - [-[no]location] [-cache ""] [-[no]value] - [-[no]format] [-[no]statistics] [-[no]neg2posfp0] - [-tolerance ","] [-about] - -#endos - -Purpose: CDFcompare displays the differences in two CDFs. More than - one pair of CDFs may be compared. - -Parameter(s): - - The specifications of the CDFs to be compared (do not - enter extensions). These can be either a pathname - specifying a single CDF or a directory/wildcard path - specifying more than one CDF. Wildcards are allowed in - the CDF name but not in the directory path. The available - wildcards are similar to those on the operating system - being used. - - If two directory/wildcard paths are specified, all of the - CDFs with matching names will be compared. If a CDF - pathname and a directory/wildcard path are specified, - the CDF specified will be compared with the CDF in the - directory/wildcard path having the same name. If two CDF - pathnames are specified, the CDFs are compared (this is - the only way to compare two CDFs having different names). - -#ifos vms -Qualifier(s): /[NO]LOG -#else -Qualifier(s): -[no]log -#endos - Specifies whether or not progress of the comparison is - displayed. - -#ifos vms - /[NO]PERCENT -#else - -[no]percent -#endos - Specifies whether or not the percentage of a variable's - values compared is displayed during the comparison of that - variable. Message logging must also be enabled. - -#ifos vms - /[NO]PAGE -#else - -[no]page -#endos - Specifies whether or not the output is displayed a page - at a time. - -#ifos vms - /[NO]ATTR -#else - -[NO]attr -#endos - Specifies whether or not attributes are to be compared. - -#ifos vms - /[NO]VAR -#else - -[no]var -#endos - Specifies whether or not variables are to be compared. - -#ifos vms - /[NO]NUMBER -#else - -[no]number -#endos - Specifies whether or not numbering differences of - attributes and variables should be displayed. - -#ifos vms - /[NO]ETC -#else - -[no]etc -#endos - Specifies whether or not differences which are transparent - to an application are to be displayed (eg. encoding, format, - creation library). - -#ifos vms - /ZMODES=(,) -#else - -zmodes "," -#endos - Specifies the zModes which should be used with the - CDF(s) being compared. applies to the first CDF - specification and applies to the second CDF - specification. The zModes may each be one of the - following... - - 0 Indicates that zMode is disabled. - 1 Indicates that zMode/1 should be used (the - dimension variances of rVariables will be - preserved). - 2 Indicates that zMode/2 should be used (the - dimensions of rVariables having a variance - of NOVARY (false) are hidden. - -#ifos vms - /[NO]NEG2POSFP0 -#else - -[no]neg2posfp0 -#endos - Specifies whether or not -0.0 is converted to 0.0 by the - CDF library when read from a CDF. -0.0 is an illegal - floating point value on VAXes and DEC Alphas running OpenVMS. - -#ifos vms - /[NO]LOCATION -#else - -[no]location -#endos - Specifies whether or not the locations of variable value - differences are displayed. The locations are displayed - in the form... - :[,,...,] - -#ifos vms - /[NO]VALUE -#else - -[no]value -#endos - Specifies whether or not the values are displayed when - a difference is detected (between attribute entries and - variable values). Note that for variable values to be - displayed, the display of the locations of the differences - must also be enabled. - -#ifos vms - /[NO]FORMAT -#else - -[no]format -#endos - Specifies whether or not the FORMAT attribute is used to - display data values when a difference is detected - (between attribute entries and variable values). Note that - use of the FORMAT attribute for data display is the default, - if existence, sometimes it might not have the detailed - precision for the floating-points to show the differences. - Even the `noformat' option could not always show the very - minor differences between floating-point values as the C's - "%g" format is used. - -#ifos vms - /REPORT=() -#else - -report "" -#endos - Specifies the types of return status codes from the CDF - library which should be reported/displayed. is - a comma-separated list of zero or more of the following - symbols: `errors', `warnings', or `informationals'. Note - that these symbols can be truncated (eg. `e', `w', and - `i'). - -#ifos vms - /CACHE=() -#else - -cache "" -#endos - The number of 512-byte buffers to be used for the CDF's - dotCDF file, staging file, and compression scratch file. - If this qualifier is absent, default cache sizes chosen by - the CDF library are used. The cache sizes are specified - with a comma-separated list of pairs where - is the number of cache buffers and is the - type of file. The file 's are as follows: `d' for - the dotCDF file, `s' for the staging file, and `c' for the - compression scratch file. For example, `200d,100s' - specifies 200 cache buffers for the dotCDF file and 100 - cache buffers for the staging file. The dotCDF file cache - size can also be specified without the `d' for - compatibility with older CDF releases (eg. `200,100s'). - Note that not all of the file types must be specified. - Those not specified will receive a default cache size. - -#ifos vms - /TOLERANCE=(,) -#else - -tolerance "," -#endos - Specifies the tolerance(s) that is used to check the equality - between two single/double-precision floating-point values. - The default option is no tolerance. It means that two values - are considered unequal if their data representations in common - encoding are different. If a tolerance(s) is provided, it is - used against the difference between the two unequal values. If - their difference is within the tolerance, they are considered - to be technically equal. Either one or both of these two - tolerances, one for 4-byte single-precision floating-point - data and the other for 8-byte double-precision floating-point - data, respectively, can be specified. - - If the given tolerance is positive, the following formula is - used to check their equality: - abs(value1-value2) > tolerance - - If the given tolerance is negative, the following formula is - applied: - abs(value1-value2) > abs(tolerance)*max(abs(value1),abs(value2)) - - tolerance1, used for the single-precision floating-point data, - may be in one of the two forms: "default" or a value. Using - "default" indicates that the default value, 1.0E-06, is used for - the tolerance check for any single-precision floating-point - data. Or, the specified value is used for the tolerance check. - This field applies to data types of CDF_REAL4 and CDF_FLOAT. - "def" can be used to substitute for "default". - - tolerance2, used for the double-precision floating-point data, - may be in one of the two forms: "default" or a value. Using - "default" indicates that the default value, 1.0E-09, is used for - the tolerance check for any double-precision floating-point - data. Or, the specified value is used for the tolerance check. - This field applies to data types of CDF_REAL8, CDF_DOUBLE and - CDF_EPOCH. "default" can be abbreviated as "def". - -#ifos vms - /[NO]STATISTICS -#else - -[no]statistics -#endos - Specifies whether or not caching statistics are displayed - at the end of each comparison. - -#ifos vms - /ABOUT -#else - -about -#endos - Shows the library version that was used to create this tool - program. - -#ifos vms -Example(s): $ CDFCOMPARE GISS_WETL GISS_WETLX - $ CDFCOMPARE/LOG/TOLERANCE=(F:DEF,D:1.0E-12)/NOATTR/NUMBER GISS_WETL - CDF$SMPL:GISS_WETLX - $ CDFCOMPARE/VAR/ZMODES=(1,2) CDF$SMPL:QST* [.TEMP] - $ CDFCOMPARE/REPORT=(ERRORS) NCDS$DATA:CAC_SST_BLENDED [-.CAC] -#endos -#ifos unix -Example(s): % cdfcompare giss_wetl giss_wetlx - % cdfcompare -log -tolerance "f:def,d:1.0e-12" -noattr - -number giss_wetl ../../giss_wetlx - % cdfcompare -var -zmodes "1,2" '${CDF$SMPL}/QST*' temp - % cdfcompare -report "errors" ~ncds/cac_sst_blended ../cac -#endos -#ifos dos -Example(s): > cdfcompare gisswetl gwetlx - > cdfcompare -log -tolerance "f:def,d:1.0e-12" -noattr - -number gisswetl ..\..\gwetlx - > cdfcompare -var -zmodes "1,2" c:\cdf\samples\QST* temp - > cdfcompare -report "errors" b:\ncds\cac_sst ..\cac -#endos -#endos diff --git a/cdf36_3-dist/src/help/cdfcmpj.olh b/cdf36_3-dist/src/help/cdfcmpj.olh deleted file mode 100644 index 681bfdc..0000000 --- a/cdf36_3-dist/src/help/cdfcmpj.olh +++ /dev/null @@ -1,130 +0,0 @@ -#****************************************************************************** -# Copyright 1996-2014 United States Government as represented by the -# Administrator of the National Aeronautics and Space Administration. -# All Rights Reserved. -#****************************************************************************** -#------------------------------------------------------------------------------ -# -# NSSDC/CDF CDFcompare online help. -# -# Version 1.1b, 21-Feb-97, Hughes STX. -# -# Modification history: -# -# V1.0 ?, J Love Original version. -# V1.1 23-Sep-96, J Love CDF V2.6. -# V1.1a 7-Jan-97, J Love Fixed cache qualifier. -# V1.1b 21-Feb-97, J Love Removed RICE. -# -#------------------------------------------------------------------------------ - -CDFcompare displays the differences between two CDFs. The parameters/qualifiers -dialog box displayed when CDFcompare is `executed' contains the following -controls. - -Edit fields for... - - CDF1: The file name of the first CDF specification. - CDF2: The file name of the second CDF specification. - The two CDF specifications to be compared. At the - end of each field a button labeled "Select" is - present. When selected, a standard input file - dialog is displayed from which a single CDF may be - selected. Note that folders/wildcard specifications - may also be specified in these fields. (Wildcards - are allowed in CDF names but not folder names). - - Cache sizes: The number of 512-byte buffers to be used for the - CDF's dotCDF file, staging file, and compression - scratch file. If this field is left blank, default - cache sizes chosen by the CDF library are used. - The cache sizes are specified with a comma-separated - list of pairs where is the - number of cache buffers and is the type of - file. The file 's are as follows: `d' for the - dotCDF file, `s' for the staging file, and `c' for - the compression scratch file. For example, `200d,100s' - specifies 200 cache buffers for the dotCDF file and - 100 cache buffers for the staging file. The dotCDF - file cache size can also be specified without the `d' - for compatibility with older CDF releases (eg. - `200,100s'). Note that not all of the file types must - be specified. Those not specified will receive a - default cache size. - -Check boxes for... - - Page output: Whether or not the output is displayed one page (screen) - at a time. - - Compare attributes: Whether or not attributes are to be compared. - - Compare variables: Whether or not variables are to be compared. - - Compare numbers: Whether or not numbering differences of attributes and - variables should be displayed. The - - Compare etc.: Whether or not differences which are transparent to an - application are to be displayed (eg. encoding, format, - creation library). - - -0.0 to 0.0: Whether or not -0.0 is converted to 0.0 by the CDF - library when read from a CDF. - - Report info's: Whether or not informational status codes from the CDF - library should be reported. - - Report warnings: Whether or not warning status codes from the CDF library - should be reported. - - Report errors: Whether or not error status codes from the CDF library - should be reported. - - Log progress: Whether or not progress messages are displayed. - - Display percentages: Whether or not the percentage of a variable's values - compared is displayed during the comparison of that - variable. Progress message logging must also be - enabled. - - Display locations: Whether or not the locations of variable value - differences are displayed. The locations are displayed - in the form... - :[,,...,] - - Display values: Whether or not the values are displayed when a - difference is detected (between attribute entries - and variable values). Note that for variable values - to be displayed, the display of the locations of the - differences must also be enabled (see the "Display - locations" check box). - - Display statistics: Whether or not caching statistics are displayed at the - end of each comparison of two CDFs. - - About: Display the library version that is used to create the - tool. - -Radio buttons for... - - zMode1: The zMode to be used for the first CDF specification. - zMode2: The zMode to be used for the second CDF specification. - 0...zMode is disabled. - 1...zMode/1 should be used. The dimension - variances of the rVariables will be preserved. - 2...zMode/2 should be used. The dimensions of - rVariables having a variance of NOVARY (false) - are hidden. - -Buttons for... - - Enter Causes CDFcompare to compare CDFs based on the - parameters/qualifiers specified. - - Help Causes this online help to be displayed. - - Quit Causes CDFcompare to terminate. (No CDFs are - compared.) This button is only present the first - time the parameters/qualifiers dialog box is - displayed. - diff --git a/cdf36_3-dist/src/help/cdfcvt.olh b/cdf36_3-dist/src/help/cdfcvt.olh deleted file mode 100644 index a1c1d27..0000000 --- a/cdf36_3-dist/src/help/cdfcvt.olh +++ /dev/null @@ -1,764 +0,0 @@ -#****************************************************************************** -# Copyright 1996-2014 United States Government as represented by the -# Administrator of the National Aeronautics and Space Administration. -# All Rights Reserved. -#****************************************************************************** -#------------------------------------------------------------------------------ -# -# NSSDC/CDF CDFconvert online help. -# -# Version 1.1c, 21-Nov-97, Hughes STX. -# -# Modification history: -# -# V1.0 ?, J Love Original version. -# V1.1 23-Sep-96, J Love CDF V2.6. -# V1.1a 7-Jan-97, J Love Fixed cache qualifier. -# V1.1b 21-Feb-97, J Love Removed RICE. -# V1.1c 21-Nov-97, J Love Windows NT/95. -# -#------------------------------------------------------------------------------ -#ifos mac win -CDFconvert is used to convert one or more CDFs. Conversions can be from -older releases of CDF (eg. Version 2.4 CDFs) to the current release and/or -to change the format, majority, or encoding. The parameters/qualifiers -dialog box displayed when CDFconvert is `executed' contains the following -controls. - -Edit fields for... - - Source: The source CDF specification. This can be either a - single CDF pathname or a folder/wildcard path in - which case all CDFs which match the specification will - be converted. Wildcards are allowed in the CDF name - but not in the folder path. In either case, do not - specify an extension. - - At the end of this field a button labeled "Select" is - present. When selected, a standard input file dialog - is displayed from which a single CDF may be selected. - - Destination: The destination of the converted CDF(s). This may be - a single CDF pathname only if the source specification - is a single CDF pathname. If the folder paths are the - same, then a different CDF name must be specified. If - more than one CDF is being converted, then this must be - a folder path (other than the source folder path). - This may also be a directory path if only one CDF is - being converted. In any case, do not specify an - extension. - - At the end of this field a button labeled "Select" is - present. When selected, a standard output file dialog - is displayed in which a single CDF may be specified. - - Skeleton: The pathname of a skeleton CDF to be used during the - conversions (do not enter an extension). Specifying a - skeleton CDF is optional. The skeleton CDF is used in - the following cases... - - 1. If a format for the destination CDF(s) was not - specified, then the format of the skeleton CDF - will be used. - - 2. If a majority for the destination CDF(s) was not - specified, then the majority of the skeleton CDF - will be used. - - 3. If an encoding for the destination CDF(s) was not - specified, then the encoding of the skeleton CDF - will be used. - - Cache sizes: The number of 512-byte buffers to be used for the - CDF's dotCDF file, staging file, and compression - scratch file. If this field is left blank, default - cache sizes chosen by the CDF library are used. - The cache sizes are specified with a comma-separated - list of pairs where is the - number of cache buffers and is the type of - file. The file 's are as follows: `d' for the - dotCDF file, `s' for the staging file, and `c' for - the compression scratch file. For example, `200d,100s' - specifies 200 cache buffers for the dotCDF file and - 100 cache buffers for the staging file. The dotCDF - file cache size can also be specified without the `d' - for compatibility with older CDF releases (eg. - `200,100s'). Note that not all of the file types must - be specified. Those not specified will receive a - default cache size. - - Compression: Specifies the types of compression to be used for the - CDF and/or variables. consists of a comma- - separated list of the following... - - cdf: CDF's compression. - vars: Compression for all - variables. - vars:: Compression for all - variables with a blocking - factor specified. - vars::: Compression for all - variables with a blocking - factor and reserve - percentage specified. - var:: Compression for one - particular variable. - var::: Compression for one - particular variable with - a blocking factor - specified. - var:::: Compression for one - particular variable with - a blocking factor and - reserve percentage - specified. - - Where is one of the following: `none', `rle.0', - `huff.0', `ahuff.0', or `gzip.'; is a - blocking factor; is a reserve percentage; and - is a delimited, case-sensitive variable name - with the following syntax: - - ... - - For the `gzip' compression, must be in the - range from `1' (fastest compression) to `9' (best - compression). `6' is the better for performance and - compression rate. - - For compressions not specified the compression in - the source CDF will be used. Specifying a variable - compression using `var:' overrides a compression - specified with `vars:'. While having `var:' for - multiple variables, use "'" as the delimeter and "," - as the variable separator. - - Sparseness: Specifies the types of sparseness to be used for the - variables. consists of a comma-separated list - of the following... - - vars: Sparseness for all variables. - var:: Sparseness for one particular - variable. - - Where is one of the following: `srecords.no', - `srecords.pad', or `srecords.prev'; and is a - delimited, case-sensitive variable name with the - following syntax: - - ... - - For sparsenesses not specified the sparseness in - the source CDF will be used. Specifying a variable - sparseness using `var:' overrides a sparseness - specified with `vars:'. - - Note: For non-record variant (NVR) variables, since - they only have a single record, if the record size - is too small (less than 1K), the compression will - not be turned on, even specified so. - -Check boxes for... - - Log progress: Whether or not progress messages are displayed. - - Display percentages: Whether or not the percentage of a variable's values - converted is displayed during the conversion of that - variable. Progress message logging must also be - enabled. - - Delete existing: Whether or not an existing CDF is deleted if a new - CDF with the same name is to be created. - - Page output: Whether or not the output is displayed one page (screen) - at a time. - - Report info's: Whether or not informational status codes from the CDF - library should be reported. - - Report warnings: Whether or not warning status codes from the CDF library - should be reported. - - Report errors: Whether or not error status codes from the CDF library - should be reported. - - -0.0 to 0.0: Whether or not -0.0 is converted to 0.0 by the CDF - library when read from a CDF. - - Display statistics: Whether or not caching statistics are displayed at the - end of each comparison of two CDFs. - -Radio buttons for... - - Format: The format of the destination CDF(s). - Source...the same as the source CDF (unless a - skeleton CDF was specified). - Single...single-file. - Multi....multi-file. - - Majority: The variable majority of the destination CDF(s). - Source...the same as the source CDF (unless a - skeleton CDF was specified). - Row......row-major. - Column...column-major. - - Encoding: The encoding of the destination CDF(s). - Source.......the same as the source CDF (unless a - skeleton CDF was specified). - Host.........the host machine's encoding (ie., - INTEL PC encoding). - Network......network encoding. - Sun..........Sun encoding. - VAX..........VAX encoding. - SGi..........SGi encoding. - HP...........HP encoding. - PC...........INTEL PC encoding. - IBM RS.......IBM RS encoding - PPC..........Macintosh/PPC encoding. - DECstation...DECstation encoding. - NeXT.........NeXT encoding. - Alpha/VMSd...DEC Alpha/VMS D_FLOAT encoding. - Alpha/VMSg...DEC Alpha/VMS G_FLOAT encoding. - Alpha/VMSi...DEC Alpha/VMS IEEE encoding. - Alpha/OSF1...DEC Alpha/OSF1 encoding. - - zMode: The zMode to be used for the source CDF(s). - 0...zMode is disabled. - 1...zMode/1 should be used. The dimension - variances of the rVariables will be preserved. - 2...zMode/2 should be used. The dimensions of - rVariables having a variance of NOVARY (false) - are hidden. - -Buttons for... - - Enter Causes CDFconvert to convert CDF(s) based on the - parameters/qualifiers specified. - - Help Causes this online help to be displayed. - -#ifos mac - Quit Causes CDFconvert to terminate. (No CDFs are - converted.) This button is only present the - first time the parameters/qualifiers dialog box - is displayed. - -#endos - Cancel Causes the parameters/qualifiers dialog box to - be closed. (No CDFs are converted.) -#ifos mac - This button is only present after the first time the - parameters/qualifiers dialog box is displayed. -#endos -#else -#ifos vms -Usage: $ CDFCONVERT [/SKELETON=] [/[NO]LOG] - [/[NO]PERCENT] [/REPORT=()] [/[NO]PAGE] - [/CACHE=()] [/[NO]STATISTICS] [/ABOUT] - - [/ZMODE=] [/[NO]NEG2POSFP0] - - [/SINGLE | /MULTI] [/ROW | /COLUMN] - [/HOST | /NETWORK | /ENCODING=] - [/COMPRESSION=()] [/[NO]DELETE] - [/SPARSENESS=()] [/BACKWARD] [/SORT=] - [/CHECKSUM=] [/BLOCKINGFACTOR=] - [/EPOCH2TT2000 | /TT20002EPOCH | /TT20002DEPOCH] - [/ADJUSTTT2000=] - [/LEAPSECONDLASTUPDATED=] - [/COMPRESSNONEPOCH] -#endos -#ifos unix -Usage: % cdfconvert [-skeleton ] [-[no]log] - [-[no]percent] [-report ""] [-[no]page] - [-cache ""] [-[no]statistics] [-about] - - [-zmode ] [-[no]neg2posfp0] - - [-single | -multi] [-row | -column] - [-host | -network | -encoding ] - [-compression ] [-[no]delete] - [-sparseness ] [-backward] [-sort ] - [-checksum ] [-blockingfactor ] - [-epoch2tt2000 | -tt20002epoch | -tt20002depoch] - [-adjusttt2000 ] - [-leapsecondlastupdated ] - [-compressnonepoch] -#endos -#ifos dos -Usage: > cdfconvert [-skeleton ] [-[no]log] - [-[no]percent] [-report ""] [-[no]page] - [-cache ""] [-[no]statistics] [-about] - - [-zmode ] [-[no]neg2posfp0] - - [-single | -multi] [-row | -column] - [-host | -network | -encoding ] - [-compression ] [-[no]delete] - [-sparseness ] [-backward] [-sort ] - [-checksum ] [-blockingfactor ] - [-epoch2tt2000 | -tt20002epoch | -tt20002depoch] - [-adjusttt2000 ] - [-leapsecondlastupdated ] - [-compressnonepoch] -#endos - -Purpose: CDFconvert is used to convert one or more CDFs. Conversions - can be from older releases of CDF (eg. Version 2.4 CDFs) to - the current release and/or to change the format, majority, - encoding, and others. - -Parameter(s): - The source CDF(s). This can be either a single CDF - pathname or a directory/wildcard path in which case all - CDFs which match the specification will be converted. - Wildcards are allowed in the CDF name but not in the - directory path. In either case, do not specify an - extension. - - - The destination of the converted CDF(s). This may be - a single CDF pathname only if is a - single CDF pathname. If the directory paths are the - same, then a different CDF name must be specified. If - more than one CDF is being converted, this must be a - directory path (other than the source directory path). - This may also be a directory path if only one CDF - is being converted. In any case, do not specify an - extension. - -#ifos vms -Qualifier(s): /SKELETON= -#else -Qualifier(s): -skeleton -#endos - The pathname of a skeleton CDF to be used during the - conversions (do not enter an extension). The skeleton - CDF is used in the following cases. - - 1. If a format for the destination CDF(s) was not - specified, then the format of the skeleton CDF will - be used. - - 2. If a majority for the destination CDF(s) was not - specified, then the majority of the skeleton CDF will - be used. - - 3. If an encoding for the destination CDF(s) was not - specified, then the encoding of the skeleton CDF will - be used. - - Specifying a skeleton CDF is optional. - -#ifos vms - /[NO]LOG -#else - -[no]log -#endos - Specifies whether or not messages are displayed - indicating the progress of a conversion. - -#ifos vms - /[NO]PERCENT -#else - -[no]percent -#endos - Specifies whether or not the percentage of a variable - converted is displayed during the conversion of that - variable. Message logging must also be enabled. - -#ifos vms - /[NO]PAGE -#else - -[no]page -#endos - Specifies whether or not the output is displayed a page - at a time. - -#ifos vms - /ZMODE= -#else - -zmode -#endos - Specifies which zMode should be used with the source CDF(s). - may be one of the following... - - 0 Indicates that zMode is disabled. - 1 Indicates that zMode/1 should be used (the - dimension variances of rVariables will be - preserved). - 2 Indicates that zMode/2 should be used (the - dimensions of rVariables having a variance - of NOVARY (false) are hidden. - - Note that using zMode/1 or zMode/2 on a source CDF which - contains rVariables will produce a destination CDF - containing only zVariables. The zMode "view" provided - for the source CDF is written to the destination CDF - during the conversion. - -#ifos vms - /SINGLE | /MULTI -#else - -single | -multi -#endos - The format of the destination CDF(s). This overrides the - format of the skeleton CDF (if specified). If neither - this qualifier nor a skeleton CDF is specified, then the - format of the destination CDF(s) will be the same as that - of the source CDF(s). - -#ifos vms - /ROW | /COLUMN -#else - -row | -column -#endos - The majority of the destination CDF(s). This overrides - the majority of the skeleton CDF (if specified). If - neither this qualifier nor a skeleton CDF is specified, - then the majority of the destination CDF(s) will be the - same as that of the source CDF(s). Once the majority is - changed, all multi-dimensional variables' data are - transposed. Their dimensional sizes remain the same. - -#ifos vms - /HOST | /NETWORK | /ENCODING= -#else - -host | -network | -encoding -#endos - The encoding of the destination CDF(s). Specify only one - of these qualifiers. This overrides the encoding of the - skeleton CDF (if specified). If neither this qualifier nor - a skeleton CDF is specified, then the encoding of a - destination CDF will be the same as that of the source -#ifos vms - CDF. The possible values of are HOST, - NETWORK, SUN, VAX, DECSTATION, SGi, IBMPC, IBMRS, PPC, HP, - NeXT, ALPHAOSF1, ALPHAVMSd, ALPHAVMSg, ALPHAVMSi. - - Note that /HOST and /NETWORK are no longer necessary - (but are supported for compatibility with previous CDF - distributions). -#else - CDF. The possible values of are `host', - `network', `sun', `vax', `decstation', `sgi', `ibmpc', - `ibmrs', `ppc', `hp', `next', `alphaosf1', `alphavmsd', - `alphavmsg', `alphavmsi'. - - Note that `-host' and `-network' are no longer necessary - (but are supported for compatibility with previous CDF - distributions). -#endos - -#ifos vms - /[NO]DELETE -#else - -[no]delete -#endos - Specifies whether or not an existing CDF is deleted if - a new CDF with the same name is to be created. - -#ifos vms - /[NO]NEG2POSFP0 -#else - -[no]neg2posfp0 -#endos - Specifies whether or not -0.0 is converted to 0.0 by the - CDF library when read from or written to a CDF. -0.0 is - an illegal floating point value on VAXes and DEC Alphas - running OpenVMS. - -#ifos vms - /REPORT=() -#else - -report "" -#endos - Specifies the types of return status codes from the CDF - library which should be reported/displayed. is - a comma-separated list of zero or more of the following - symbols: `errors', `warnings', or `informationals'. Note - these symbols can be truncated (eg. `e', `w', and `i'). - -#ifos vms - /CACHE=() -#else - -cache "" -#endos - The number of 512-byte buffers to be used for the CDF's - dotCDF file, staging file, and compression scratch file. - If this qualifier is absent, default cache sizes chosen by - the CDF library are used. The cache sizes are specified - with a comma-separated list of pairs where - is the number of cache buffers and is the - type of file. The file 's are as follows: `d' for - the dotCDF file, `s' for the staging file, and `c' for the - compression scratch file. For example, `200d,100s' - specifies 200 cache buffers for the dotCDF file and 100 - cache buffers for the staging file. The dotCDF file cache - size can also be specified without the `d' for - compatibility with older CDF releases (eg. `200,100s'). - Note that not all of the file types must be specified. - Those not specified will receive a default cache size. - -#ifos vms - /[NO]STATISTICS -#else - -[no]statistics -#endos - Specifies whether or not caching statistics are displayed - at the end of each conversion. - -#ifos vms - /COMPRESSION=() -#else - -compression "" -#endos - Specifies the types of compression to be used for the CDF - and/or variables. The option consists of a comma- - separated list of the following... - - cdf: CDF's compression. - vars: Compression for all - variables. - vars:: Compression for all - variables with a blocking - factor specified. - vars::: Compression for all - variables with a blocking - factor and reserve - percentage specified. - var:: Compression for one - particular variable. - var::: Compression for one - particular variable with - a blocking factor specified. - var:::: Compression for one - particular variable with - a blocking factor and - reserve percentage - specified. - - Where is one of the following: `none', `rle.0', - `huff.0', `ahuff.0', or `gzip.'; is a blocking - factor; is a reserve percentage; and is a - delimited, case-sensitive variable name with the following - syntax: - - ... - - In general, do not use single or double quote marks as - delimiters. But on VMS systems the entire delimited - variable name must be enclosed in double quote marks (to - preserve case-sensitivity). - - For the `gzip' compression, must be in the range - from `1' (fastest compression) to `9' (best compression). - - For compressions not specified the compression in the source - CDF will be used. Specifying a variable compression using - `var:' overrides a compression specified with `vars:'. - - Note: Non-record variant variables will not be compressed if - their total data sizes are less than 1K. - -#ifos vms - /SPARSENESS=() -#else - -sparseness "" -#endos - Specifies the types of sparseness to be used for the - variables. The option consists of a comma- - separated list of the following... - - vars: Sparseness for all variables. - var:: Sparseness for one particular - variable. - - Where is one of the following: `srecords.no', - `srecords.pad', or `srecords.prev'; and is a - delimited, case-sensitive variable name with the - following syntax: - - ... - - In general, do not use single or double quote marks as - delimiters. But on VMS systems the entire delimited - variable name must be enclosed in double quote marks (to - preserve case-sensitivity). - - For sparsenesses not specified the sparseness in the source - CDF will be used. Specifying a variable sparseness using - `var:' overrides a sparseness specified with `vars:'. - -#ifos vms - /BACKWARD -#else - -backward -#endos - By default, the converted file will be of the same version - as the library it runs on, unless the environment variable - CDF_FILEBACKWARD (or CDF$FILEBACKWARD on OpenVMS) is set to - true. In that case, a backward V2.7 version file is - created. This option serves the same propose to create a - backward version file if that environment variable is not - set. If this option is on, make sure that the source file - is not over 2G file size limit, either compressed or - uncompressed. - -#ifos vms - /CHECKSUM= -#else - -checksum -#endos - By default, whether to set the checksum mode on the - converted file is based on the environment variable - CDF_CHECKSUM (or CDF$CHECKSUM on OpenVMS) or the source - file. If the environment variable is set to a valid method, - the checksum mode for the converted file will also be set. - If the environment variable is not set, then the source - file's checksum mode is used for the converted file. - Alternatively, to force the checksum mode to be (or not to - be) set, this option can be used. If it is specified, then - it will overwrite the environment variable and that in the - source file. Currently, the possible values for the - checksum option are `none', `md5' or `source'. This option - becomes invalid if the backward option is also specified - as checksum does not apply to files prior to CDF V3.2. - -#ifos vms - /SORT= -#else - -sort -#endos - This option will sort the CDF, based on the given variable. - For time-sequenced CDFs that are out of chronological order, - this option will use "var" as the base for sorting. All - other record-variant variables that have no sparse records - and have the same number of records (samplings) will have - their records rearranged accordingly. - -#ifos vms - /BLOCKINGFACTOR= -#else - -blockingfactor -#endos - This option will provide an easier way of setting a blocking - factor for each of the compressed variable. can be: - 1. A string of "optimal", meaning to use the computed - blocking factor that is based on the variable's record - size and available compressed caches. This approach - will increase the blocking factor from the default - setup, which potentially will provide a smaller file with - a better data access. - 2. A string of "max", meaning a single block is to be - used to hold a variable's total data. This option can - potentially make the smallest file. However, tests show - it might not be the most efficient for data access. - 3. A number. If a value is given, each compressed block will - hold that number of records. A variable may have multiple - compressed blocks. Using higher number will require more - dynamic space, but can reduce the file size and speed up - the overall data access. - The blocking factor field, if provided, in the "compression" - option will overwrite this value. - -#ifos vms - /COMPRESSNONEPOCH -#else - -compressnonepoch -#endos - This option will compress all non-CDF epoch type variables, - i.e., not CDF_EPOCH, CDF_EPOCH16 and CDF_TIME_TT2000 types, - and uncompress those CDF epoch type variables. If the - variables in the original file are already compressed, then - their compression method/level will be preserved. Otherwise, - the compressed variables will be in GZIP.6 compression. This - option provides an easier form for the compression option. - Variables of non-record varying will not be compressed if - their sizes are less than 1K. This option will overwrite - any variable specific parameters in the -compression option. - Once this option is used, the CDF-level compression will be - turned off, no matter what the source file may have. - -#ifos vms - /EPOCH2TT2000 | /TT20002EPOCH | /TT20002DEPOCH -#else - -epoch2tt2000 | -tt20002epoch | -tt20002depoch -#endos - Specifies whether the epoch data needs to be converted in - to a different form: from CDF_EPOCH/CDF_EPOCH16 to - CDF_TIME_TT2000 (epoch2tt2000), from CDF_TIME_TT2000 to - CDF_EPOCH (tt20002epoch), or CDF_TIME_TT2000 to - CDF_EPOCH16 (tt20002depoch). If an epoch of CDF_TIME_TT2000 - falls on a leap second, it will be converted to the zero (0) - second of the next day as CDF_EPOCH/EPOCH16 does not have - leap second. No conversion is the default. - - Note: If the EPOCH/EPOCH16 date is outside of the range of - for TT2000, e.g., 0001-01-01T12:34:56.123 (a valid - CDF_EPOCH), a dummy value is assigned which is presented as - 9999-12-31T23:59:59.999999999. - -#ifos vms - /LEAPSECONDLASTUPDATED= -#else - -leapsecondlastupdated date -#endos - Respecifies the leap second last updated date stored in the - head field in a CDF. The date, in YYYYMMDD form, has to be - a valid entry in the currently used leap second table (LST), - or a value of zero (0). Zero value indicates the CDF was - built without using a leap second table. Normally, this - option is used to modify the field for older CDFs that have - not had this field set. Without this option, the converted - file will be filled with the latest leap second date from - the LST. - -#ifos vms - /ADJUSTTT2000= -#else - -adjusttt2000 date -#endos - Specifies the starting date that TT2000 data need to be - adjusted by adding one (1) or more second(s). This date, - in YYYYMMDD, has to be a valid entry in the currently used - leap second table. The CDF needs to be adjusted because it - was made based on an outdated leap second table. The leap - second last updated date stored in the head field in a CDF - will be adjusted as well. - -#ifos vms - /ABOUT -#else - -about -#endos - Shows the library version that was used to create this tool - program. - -#ifos vms -Example(s): $ CDFCONVERT CDF$SMPL:TPLATE0 TEMPLATE0X/ENCODING=IBMPC - $ CDFCONVERT/REPORT=(ERRORS) CDF$SMPL: USER_DISK:[USER.CDF] - $ CDFCONVERT CAC_SST_BLENDED CAC_SST_BLENDEDX/SINGLE/NETWORK - $ CDFCONVERT/SKELETON=CDF$SMPL:TPLATE3 CAC_SST_* [USER.CDF] - $ CDFCONVERT FLUX1 FLUX2/COMPRESSION=(CDF:HUFF.0)/BACKWARD - $ CDFCONVERT FILE1 FILE2/CHECKSUM=MD5 - $ CDFCONVERT/LOG MAG MAGX/COMPRESSION=(VAR:"^var1^":AHUFF.0:50) -#endos -#ifos unix -Example(s): % cdfconvert ../samples/tplate0 template0x -encoding ibmpc - % cdfconvert -report "errors" ../samples/ /disk4/user/cdf/ - % cdfconvert cac_sst_blended cac_sst_1 -single -network - % cdfconvert -skeleton tplate3 '../cdf/cac_sst_*' ~user/cdf - % cdfconvert flux1 flux2 -compression "cdf:huff.0" -backward - % cdfconvert file1 file2 -checksum md5 - % cdfconvert -log mag magx -compression "var:^var1^:ahuff.0:50" -#endos -#ifos dos -Example(s): > cdfconvert ..\samples\tplate0 tplate0x -encoding ibmpc - > cdfconvert -report "errors" ..\samples c:\disk4\user\cdf - > cdfconvert cac_sst cac_sst1 -single -network - > cdfconvert -skeleton tplate3 ..\cac_sst* b:\user\cdf - > cdfconvert flux1 flux2 -compression "cdf:huff.0" -backward - > cdfconvert -log mag magx -compression "var:^var1^:ahuff.0:50" -#endos -#endos diff --git a/cdf36_3-dist/src/help/cdfcvtj.olh b/cdf36_3-dist/src/help/cdfcvtj.olh deleted file mode 100644 index 6473a86..0000000 --- a/cdf36_3-dist/src/help/cdfcvtj.olh +++ /dev/null @@ -1,257 +0,0 @@ -#****************************************************************************** -# Copyright 1996-2014 United States Government as represented by the -# Administrator of the National Aeronautics and Space Administration. -# All Rights Reserved. -#****************************************************************************** -#------------------------------------------------------------------------------ -# -# NSSDC/CDF CDFconvert online help. -# -# Version 1.1b, 21-Feb-97, Hughes STX. -# -# Modification history: -# -# V1.0 ?, J Love Original version. -# V1.1 23-Sep-96, J Love CDF V2.6. -# V1.1a 7-Jan-97, J Love Fixed cache qualifier. -# V1.1b 21-Feb-97, J Love Removed RICE. -# -#------------------------------------------------------------------------------ - -CDFconvert is used to convert one or more CDFs. Conversions can be from -older releases of CDF (eg. Version 2.4 CDFs) to the current release and/or -to change the format, majority, or encoding. The parameters/qualifiers -dialog box displayed when CDFconvert is `executed' contains the following -controls. - -Edit fields for... - - Source: The source CDF specification. This can be either a - single CDF file name or a folder/wildcard path in - which case all CDFs which match the specification will - be converted. Wildcards are allowed in the CDF name - but not in the folder path. In either case, do not - specify an extension. - - At the end of this field a button labeled "Select" is - present. When selected, a standard input file dialog - is displayed from which a single CDF may be selected. - - Destination: The destination of the converted CDF(s). This may be - a single CDF file name only if the source specification - is a single CDF file name. If the folder paths are the - same, then a different CDF name must be specified. If - more than one CDF is being converted, then this must be - a folder path (other than the source folder path). - This may also be a directory path if only one CDF is - being converted. In any case, do not specify an - extension. - - At the end of this field a button labeled "Select" is - present. When selected, a standard output file dialog - is displayed in which a single CDF may be specified. - - Skeleton: The file name of a skeleton CDF to be used during the - conversions (do not enter an extension). Specifying a - skeleton CDF is optional. The skeleton CDF is used in - the following cases... - - 1. If a format for the destination CDF(s) was not - specified, then the format of the skeleton CDF - will be used. - - 2. If a majority for the destination CDF(s) was not - specified, then the majority of the skeleton CDF - will be used. - - 3. If an encoding for the destination CDF(s) was not - specified, then the encoding of the skeleton CDF - will be used. - - Cache sizes: The number of 512-byte buffers to be used for the - CDF's dotCDF file, staging file, and compression - scratch file. If this field is left blank, default - cache sizes chosen by the CDF library are used. - The cache sizes are specified with a comma-separated - list of pairs where is the - number of cache buffers and is the type of - file. The file 's are as follows: `d' for the - dotCDF file, `s' for the staging file, and `c' for - the compression scratch file. For example, `200d,100s' - specifies 200 cache buffers for the dotCDF file and - 100 cache buffers for the staging file. The dotCDF - file cache size can also be specified without the `d' - for compatibility with older CDF releases (eg. - `200,100s'). Note that not all of the file types must - be specified. Those not specified will receive a - default cache size. - - Compression: Specifies the types of compression to be used for the - CDF and/or variables. consists of a comma- - separated list of the following... - - cdf: CDF's compression. - vars: Compression for all - variables. - vars:: Compression for all - variables with a blocking - factor specified. - vars::: Compression for all - variables with a blocking - factor and reserve - percentage specified. - var:: Compression for one - particular variable. - var::: Compression for one - particular variable with - a blocking factor - specified. - var:::: Compression for one - particular variable with - a blocking factor and - reserve percentage - specified. - - Where is one of the following: `none', `rle.0', - `huff.0', `ahuff.0', or `gzip.'; is a - blocking factor; is a reserve percentage; and - is a delimited, case-sensitive variable name - with the following syntax: - - ... - - For the `gzip' compression, must be in the - range from `1' (fastest compression) to `9' (best - compression). - - For compressions not specified the compression in - the source CDF will be used. Specifying a variable - compression using `var:' overrides a compression - specified with `vars:'. - - Sparseness: Specifies the types of sparseness to be used for the - variables. consists of a comma-separated list - of the following... - - vars: Sparseness for all variables. - var:: Sparseness for one particular - variable. - - Where is one of the following: `srecords.no', - `srecords.pad', or `srecords.prev'; and is a - delimited, case-sensitive variable name with the - following syntax: - - ... - - For sparsenesses not specified the sparseness in - the source CDF will be used. Specifying a variable - sparseness using `var:' overrides a sparseness - specified with `vars:'. - -Check boxes for... - - Log progress: Whether or not progress messages are displayed. - - Display percentages: Whether or not the percentage of a variable's values - converted is displayed during the conversion of that - variable. Progress message logging must also be - enabled. - - Delete existing: Whether or not an existing CDF is deleted if a new - CDF with the same name is to be created. - - Page output: Whether or not the output is displayed one page (screen) - at a time. - - Report info's: Whether or not informational status codes from the CDF - library should be reported. - - Report warnings: Whether or not warning status codes from the CDF library - should be reported. - - Report errors: Whether or not error status codes from the CDF library - should be reported. - - -0.0 to 0.0: Whether or not -0.0 is converted to 0.0 by the CDF - library when read from a CDF. - - Display statistics: Whether or not caching statistics are displayed at the - end of each comparison of two CDFs. - - Backward: Whether or not the converted CDF is to be created in a - backward V2.7 version. - - Checksum: Whether or how the checksum mode is to be used. - - About: Display the library version that is used to create the - tool. - -Radio buttons for... - - Format: The format of the destination CDF(s). - Source...the same as the source CDF (unless a - skeleton CDF was specified). - Single...single-file. - Multi....multi-file. - - Majority: The variable majority of the destination CDF(s). - Source...the same as the source CDF (unless a - skeleton CDF was specified). - Row......row-major. - Column...column-major. - - Encoding: The encoding of the destination CDF(s). - Source.......the same as the source CDF (unless a - skeleton CDF was specified). - Host.........the host machine's encoding (ie., - Macintosh encoding). - Network......network encoding. - Sun..........Sun encoding. - VAX..........VAX encoding. - SGi..........SGi encoding. - HP...........HP encoding. - PC...........INTEL PC encoding. - IBM RS.......IBM RS encoding - Macintosh....Macintosh/PPC encoding. - DECstation...DECstation encoding. - NeXT.........NeXT encoding. - Alpha/VMSd...DEC Alpha/VMS D_FLOAT encoding. - Alpha/VMSg...DEC Alpha/VMS G_FLOAT encoding. - Alpha/VMSi...DEC Alpha/VMS IEEE encoding. - Alpha/OSF1...DEC Alpha/OSF1 encoding. - - Epoch: : The epoch of the destination CDF(s). - None..................the same as the source CDF - (unless a skeleton CDF was - specified). - EPOCH/EPOCH16-TT2000..the source CDF's epoch is - converted from EPOCH/EPOCH16 - to TT2000. - TT2000-EPOCH..........the source CDF's epoch is - converted from TT2000 to - EPOCH. - TT2000-EPOCH16........the source CDF's epoch is - converted from TT2000 to - EPOCH16. - - zMode: The zMode to be used for the source CDF(s). - 0...zMode is disabled. - 1...zMode/1 should be used. The dimension - variances of the rVariables will be preserved. - 2...zMode/2 should be used. The dimensions of - rVariables having a variance of NOVARY (false) - are hidden. - -Buttons for... - - Enter Causes CDFconvert to convert CDF(s) based on the - parameters/qualifiers specified. - - Help Causes this online help to be displayed. - - Quit Causes CDFconvert to terminate. (No CDFs are - converted.) This button is only present the - first time the parameters/qualifiers dialog box - is displayed. - diff --git a/cdf36_3-dist/src/help/cdfdirj.olh b/cdf36_3-dist/src/help/cdfdirj.olh deleted file mode 100644 index 2d11b73..0000000 --- a/cdf36_3-dist/src/help/cdfdirj.olh +++ /dev/null @@ -1,19 +0,0 @@ -CDFdir is used to display a directory listing of a CDF file. For a -multi-file CDF, the dotCDF file is displayed first followed by the -rVariable files and then the zVariable files in numerical order. - -Edit field for... - - CDF: The file name of the CDF for which a directory - listing is displayed. Do not specify its extension. - At the end of this field a button labeled "Select" is - present. When selected, a standard input file dialog - is displayed from which the CDF may be selected. - -Buttons ... - - Run CDFdir Causes CDFdir to inquire the CDF info based on the - specified CDF. - Help Causes this online help to be displayed. - Quit Causes CDFdir to terminate. - diff --git a/cdf36_3-dist/src/help/cdfdump.olh b/cdf36_3-dist/src/help/cdfdump.olh deleted file mode 100644 index b6582f4..0000000 --- a/cdf36_3-dist/src/help/cdfdump.olh +++ /dev/null @@ -1,264 +0,0 @@ -#****************************************************************************** -# Copyright 1996-2014 United States Government as represented by the -# Administrator of the National Aeronautics and Space Administration. -# All Rights Reserved. -#****************************************************************************** -#------------------------------------------------------------------------------ -# -# NSSDC/CDF CDFdump online help. -# -# Version 1.1c, 21-Nov-97, Hughes STX. -# -# Modification history: -# -# V1.0 ?, J Love Original version. -# V1.1 23-Sep-96, J Love CDF V2.6. -# V1.1a 7-Jan-97, J Love Fixed cache qualifier. -# V1.1b 21-Feb-97, J Love Removed RICE. -# V1.1c 21-Nov-97, J Love Windows NT/95. -# -#------------------------------------------------------------------------------ -#ifos mac win -CDFdump dumps the data contents in a CDF. It differs the output from CDFexport -by dumping the variables one at a time. - -The parameters/qualifiers dialog box displayed when CDFdump is `executed' -contains the following controls. - -Edit fields for... - - CDF: The pathname of the CDF to be dumped. At the end of - this field a button labeled "Select" is present. When - selected, a standard input file dialog is displayed - from which the CDF may be selected. - - Output: The pathname of the output file to which the data contents - from a CDF will be written. At the end of this field a button - labeled "Select" is present. When selected, a standard - output file dialog is displayed in which the output - file pathname may be specified. If an extension is not - specified in this pathname, `.txt.' is appended - automatically. If this field is left blank, the output - is displayed on the screen in the "CDFdump: standard - output" window. - - Variables: The selected variables in the CDF that will be dumped. - - Record Range: The starting and ending record numbers for variables' - data to be dumped. - - -Check boxes for... - - Use FORMAT: Whether or not the FORMAT attribute is used when - writing variable data (if the FORMAT attribute - exists and an entry exists for the variable). - - Dump: How to dump the file: either metadata, data or all to - to dumped. - -Buttons for... - - Enter Causes CDFdump to dump a CDF based on the - parameters/qualifiers specified. - - Help Causes this online help to be displayed. - -#ifos mac - Quit Causes CDFdump to terminate. (A CDF is not - dumped.) This button is only present the - first time the parameters/qualifiers dialog - box is displayed. - -#endos - Cancel Causes the parameters/qualifiers dialog box to - be closed. (A CDF is not dumped.) -#ifos mac - This button is only present after the first time the - parameters/qualifiers dialog box is displayed. -#endos -#else -#ifos vms -Usage: $ CDFDUMP [/[NO]FORMAT] [/DUMP=
  • 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≪UWr&*#%ik7<%I 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 z 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�BIUv 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